دسته‌ها
دسته‌بندی نشده

اتصال دامنه به سرور ubuntu

اتصاد دامنه به سرور ubuntu

dns چیست

کلمه dns سرواژه سازی شده از Domain Name Service است. از آن جایی که به خاطر سپردن ای پی آدرس ها سخت است این سرویس نام ها را به ای پی ترجمه میکند . به سرور ها و کامپیوتر هایی که DNS را اجرا میکنند name server میگویند . ابونتو به صورت پیشفرض BIND یا Berkley Internet Naming Daemon روی خودش نصب داره که معروف ترین نرم افزار برای resolve کردن توی لینوکس است.

آموزش نصب name server روی سرور ابونتو

با دسترسی روت وارد ترمینال بشوید  و دستور زیر را اجرا کنید

sudo apt install bind9

این بخش اجباری نیست! یکی از بهترین ابزار ها برای troubleshoot کردن این سرویس پکیج dnsutils است .ممکن است روی سرورتون هم به صورت پیشفرض نصب باشه از کامند زیر استفاده کنید.

sudo apt install dnsutils

کانفیگ کردن

روش های بسیار زیادی برای کانفیگ کردن bind وجود دارد . با توجه به کاری که میخواهید انجام دهید میتوانید برخی از معروف ترین آن ها cachting namserver , primary name server و secondary server هستند.

  • زمانی که BIND به صورت Caching Nameserver کانفیگ میشود بعد از ریزالو کردن یک کوئری اون را کش میکند تا برای درخواست بعدی با سرعت بیشتری به آن پاسخ بدهد.
  • زمانی که BIND به صورت Primary Server کانفیگ میشود اطلاعات موجود از zone که شما درون آن تعریف میکنید میخواند و فقط به آن ها پاسخ میدهد
  • زمانی که BIND به صورت Secondary Server کانفیگ میشود اطلاعات مربوط به zone از یک nameserver دیگر میگیرد (جهت اطلاع گفتم زیاد برای شما مهم نیست).

دورنمایی از ماجرا

مهم ترین کانفیگ های BIND میتوانید در فولدر /etc/bind پیدا کنید اما ما در این آموزش به محتوا این فولدر کاری نداریم فایل /etc/bind/named.conf فایل ای است که ما در این آموزش آن را ویرایش میکنیم

کانفیگ Primary Name Server

در اینجا ما از example.ir استفاده میکنم شما باید از اسم دامنه خودتون استفاده کنید.

ابتدا فایل /etc/bind/named.conf.local با ویرایش گر محبوبتون باز کنید من از nano استفاده میکنم .

nano /etc/bind/named.conf.local

سپس این خط به صورت زیر آخر فایل اضافه کنید

zone "example.ir" {
    type master;
    file "/etc/bind/db.example.ir";
};

سپس باید  فایل db.example.ir که در بالا به آن اشاره کردم بسازیم.

کامند زیر را بزنید و وارد ویرایشگر شوید

nano /etc/bind/db.example.ir

 

;
; BIND data file for example.ir
;
$TTL    604800
@       IN      SOA     example.ir. root.example.ir. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

@       IN      NS      ns.example.ir.
@       IN      A       192.168.1.10
@       IN      AAAA    ::1
ns      IN      A       192.168.1.10

سپس سرویس bind restart میکنیم با دستور زیر

sudo systemctl restart bind9

بعد نوبت کانفیگ کردن فایروال باید پورت 53 udp و 53 tcp باز کنیم

sudo ufw allow dns

یا اگه جواب نداد

sudo ufw allow 53/tcp
sudo ufw allow 53/udp

 

اگه نظر منو بپرسید میگم مهم ترین بخش این کانفیگ همین جاست توی هیچ جا هم درست حسابی توضیحش ندادن . من میخوام دونه دونه براتون بازش کنم.

اولش میاد میگه SOA که به معنی Start of Authority هست شما یه سری اطلاعت بعد از پرانتز اومده مثل سریال رفش اینا که تغییرش ندید .

دوم . در DNS زمانی که از @ استفاده میشه به معنی همان دامنه که بالا تر تعریفش کردید بهش روت دامین هم میگن پس شد چی ؟ @ = example.ir.

سوم . میاد این دامین example.ir به یه دی ان اس وصل که اسمش ns.example.ir توی خط  بعدی هم example.ir و ns به یه ای پی پوینت میکنه

حالا همه اینا رو که طی کنید به دی ان اس کاملا نا امن بدون کش و هیچی دارید سرعت reslove کردنش هم اصلا جالب نیست

 

روش پیشنهادی :

وقتی یه سرویس قدرمتند مثل کلادفلیر هست چرا باید دی ان اس کانفیگ کنید؟!

ابتدا وارد سایت کلافلیر بشوید اگر اکانت ندارید ابتدا ثبت نام کنید . سپس دامنه خودتون در قسمت add site وارد کنید.

 

dns هایی که بهتون میده مانند تصویر زیر set کنید .

 

حالا فرض بگیریم میخواید example.ir به ای پی  10.2.2.1 وصل کنید . اون دردسری که بالا داشتید الان ندارید با GUI خیلی راحت به صورت زیر اضافه میکنید.

 

حالا خیلی ها میگن دامنه ما IR نمیتونیم از cloudflare استفاده کنیم که این موضوع  کاملا اشتباه شما نمیتونید از سرویس ابری و ddos protection استفاده کنید dns برای همه بازه .

 

خب دامین پوینت کردید . حالا اگه یه وب سرور بالا بیارید روی سرور ابونتو میبینید که وقتی وارد دامنه میشید اونو نشون میده .

دسته‌ها
دسته‌بندی نشده

کانفیگ سرور دایرکت ادمین

 

دایرکت ادمین چیست؟

دایرکت ادمین میتونه جایگزین خوبی برای سی پنل باشه توی این آموزش قصد داریم بهتون یاد بدیم که چطوری دایرکت ادمین روی سرورتون نصب کنید . این آموزش ما فقط Centos رو پشتیبانی میکنیم.

حداقل سیستم مورد نیاز (منابع) و OS

توجه کنید دایرکت ادمین نمیتونید روی ویندوز نصب کنید و فقط از لیست سیستم عامل هایی که زیر میزنم ساپورت میکنه

  • کلاد لینوکس
  • ردهت / سنت او اس
  • دبیان
  • ابونتو
  • FreeBSD

برای حداقل منابع شما باید 1 هسته پردازنده داشته باشید حداقل 1 گیگ رم (که من اصلا پیشنهاد نمیکنم) از 2 گیگ حتما شروع کنید برای فضا هم حداقل باید 2 گیگ بعد از نصب سیستم عامل جا داشته باشید توجه کنید ! اینایی که دارم میگم دیگه کمترینش .

 

نیازی های نرم افزاری برای نصب دایرکت ادمین

  1. حتما چک کنید دسترسی ssh  داشته باشید و کار کنه
  2. در سیستم عامل رد هت Deamon Name زمان نصب انتخاب کنید
  3. دو پکیج gcc و g++ برای کامپایل کردن آپاچی و php ضروری هستن
  4. دسترسی SSH شما حتما باید به صورت ROOT باشد
  5. داشتن ای پی استاتیک واسه سرویس دهی لازم است

نصب دایرکت ادمین چقدر طول میکشه ؟

با توجه به چیزی که من دیدم به اساس این که کانکشنتون چطوریه و منابعی که در اختیار دارید کم کم از ۱۰ دقیقه میتونه باشه تا ۵۰ دقیقه ولی ولی میانگینش حدود ۱۵ دقیقه هستش.

نصب خودکار دایرکت ادمین

توی سرورتون با دسترسی root وارد بشیدبعد کامند زیر را اجرا کنید خودش همه کارا براتون انجام میده بعدش باید صبر کنید تا دانلودش تموم بشه

[code]

bash <(curl -Ss https://www.directadmin.com/setup.sh) auto

[/code]

نصب خودکار برای اکثر کابران بهترین گزینه ممکن است و همچی رو هم خودش نصب میکنه جالبه بدونید که توش فایروال CSF هم هست.

توجه کنید : نباید hostname شما مثل primary domain تون باشه اگه میخواید قبل از نصب هم یه هاستنیم انتخاب کنید به این شکل نباشه اصلا keralahost.in که باعث دردسر میشه بهترین حالت یه چیزی شبیه اینه server.keralahost.in حالا اگر با همون اسم primary domain بزنید توی استفاده از سرویس هایی مثل FTP یا ایمیل به مشکل بر میخورید.

دسترسی به کنترل پنل دایرکت ادمین

بعد از نصب میتونید به این ادرس برید http://server.servername.com:2222 بعدش وارد بشید. اگر که dns تعریف نکردید میتونید از ای پی ادرس استاتیکتون استفاده کنید.

[code]

http://ipaddr:2222

[/code]

مراحل نصب دایرکت ادمین روی سرور مجازی یا  VPS به صورت دستی

خود دایرکت ادمین یه سری چیزایی که نیاز هستن رو به صورت خودکار نصب میکنه اگه میخواد به صورت دستی انجامشون بدید به صورت زیر عمل کنید.

برای centos 7  یا  CloudLinux 7

[code]

yum install wget gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio \

libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \

autoconf automake libtool which patch mailx bzip2-devel lsof glibc-headers kernel-devel expat-devel \

psmisc net-tools systemd-devel libdb-devel perl-DBI perl-Perl4-CoreLibs perl-libwww-perl xfsprogs rsyslog logrotate crontabs file kernel-headers

[/code]

دانلود فایل نصب دایرکت ادمین

اخرین نسخه فایل نصبی به صورات زیر میتونید از سایت رسمی دایرکت ادمین دانلود کنید.

[code]

wget http://www.directadmin.com/setup.sh

[/code]

زمانی که دانلود تموم شد باید دسترسی یا همون permission فایل تغییر بدید

[code]

chmod 755 setup.sh

[/code]

غیرفعال کردن SELinux برای نصب دایرکت ادمین

سپس باید selinux رو به صورت دستی غیرفعال کنید که دوتا روش داره میتونید از کامند setenforce استفاده کنید که ممکنه بعضی وقتا کار نکنه بعدش ریبوت کنید sestatus بگیرید اگه disabled یا permissive  بود یعنی درست غیرفعال شده.

setenforce 0

روش دوم غیرفعال کردن Selinux

توی ترمینال با دسترسی روت فایل config selinux به صورت زیر که هستش تغییرش بدید.

sudo nano /etc/selinux/config

SELINUX=disabled

بعد از نصب کردن پکیج های بالا میتونید تغییراتی که دوست دارید توی فایل setup.sh بدید مثلا دوست دارید php ورژن هشت نصب داشته باشید یا کلی اپشن دیگه .

برای مثال همین php هشت که گفتم اینجا اوردم

export php1_release=8.0

بعد از اینکه تغییرات رو دادید همون فایل setup.sh که دربارش صحبت کردیم اجرا کنید

./setup.sh auto

 

منابع:

https://docs.directadmin.com/getting-started/installation/installguide/

https://docs.directadmin.com/getting-started/installation/overview/#options-for-script-installation-mode

https://www.cyberciti.biz/faq/disable-selinux-on-centos-7-rhel-7-fedora-linux/

 

دسته‌ها
دسته‌بندی نشده

raid 5 چیست

لول های مختلف RAID

RAID 0

همه دیتا ها روی تمام دیسک پخش میشن و شما میتونید حداکثر write performance داشته باشید بدیش اینه که هیچ Protection ندارید

RAID 1

ما توی raid 0 هر فایل که روی HDD1 رو داریم میرورش رو هم روی HDD2 دارم و توی لول خودش یکی از بهترین هاست

RAID 2

درباره این توضیح نمیدم اصلا سمتش نرید چون اصلا انعطاف پذیر نیست پیشنهاد من RAID 5 و 6 هستش به جای این مورد.

RAID 3

این مورد خیلی شبیه RAID 5 هستش به این فرق که توی RAID 3 بلاک ها بین درایو ها پخش میشن. RANDOM write performance خوبی نداره ولی بجاش random read performance به نسبت خوبی داره.

RAID 4

RAID 5

این همه توی بالا گفتیم فلان چیز شبیه RAID 5 چرا؟ چون خیلی استفاده داره پرفورمنس بینظیر یه چیزی شبیه RAID 0 با صرفه اقتصادی بالا. از HDD ها خیلی efficiently استفاده میکنه حداقل تعداد هارد درایو در هر گروه از ۳ تا شروع میشه معمولا تا ۵ .

 

 

رید فایو چیست؟

اول از همه بریم ببینیم که خود اسم RAID مخفف چیه Redundant Array of Independent Disks حالا چیز زیادی سر درنیوردید تعجب نکنید . اگه بخوام به زبان خودمونی بگم اینجوری میشه که دیتا توی رید ۵ فقط روی یه دونه DISK ذخیره نمیشه بلکه پخش میشه. به این عمل میگن Striping ! که زمانی که دیسک ها به مشکل برمیخورن میتونه کمک خیلی بزرگی باشه .

 

در حال حاظر یکی از محبوب ترین ها همین RAID 5 هستش یه کار خوب دیگه ای هم که Read و Write شما رو به تعادل میرسونه و همچنین فضا خیلی بیشتری در اختیار شما قرار میده نسبت به RAID 1  و RAID 10 نکته جالب اینه که از نظر عملکرد تقریبا با RAID 0 برابری میکنه.

شرایط ایجاد کردن RAID 5 چیست؟

شما باید حداقل ۳ تا هارد درایو داشته باشید خوبیش اینه که اینجا حداکثر نداریم . جالب بدونید امن ترین RAID در حال حاضر همین RAID 5 هستش چرا؟ چون دیتا تو دیسک ها پخش میکنه .

RAID 5 چطوری کار میکنه ؟

میشه گفت اصلی ترین مزیت که RAID 5 نسبت به بقیه داره همین ترکیب استفاده از دو تکنولوژی Striping و Parity هست.

 

منبع:

https://searchstorage.techtarget.com/definition/RAID-5-redundant-array-of-independent-disks

دسته‌ها
دسته‌بندی نشده

آموزش نصب وب سرور nginx در کنار آپاچی در دایرکت ادمین

به صورت پیشفرض دایرکت ادمین با وب سرور اپاچی deploy شده حالا واسه انجام دادن این کار به ابزاری به اسم CustomBuild tool نیاز داریم بعد از انجام دادن مراحل پایین شما دایرکت ادمین رو با قابلیت reverse proxy  دارید روی وب سرورتون.

برای استفاده از reverse proxy حتما باید دو تا وب سرور جدا داشته باشید که یکی از اون ها برای عموم قابل دسترسه که همون nginx میشه و اینکه  سرور آپاچی هم فقط برای back-end .

 

چرا باید آپاچی و  nginx با هم استفاده کنیم

باید بدونید هم آپاچی و انجینیکس  وب سرور های قدرمندی هستند و در حال حاظر سرویس آپاچی وب سرور شماره یک جهان محصوب میشه انجینکس هم از سال ۲۰۰۶ تا به الان مثل طوفان عمل کرده و تونسته جایگاه دوم میان وب سرور ها کسب کنه دلیلش هم کاملا مشخص آپاچی به خاطر استفاده کم اش از رم خیلی محبوبه nginx هم به خاطر سرعت بالایی که واسه static content داره البته خوبه بدونید خود انجینکس هم میتونه کار آپاچی رو انجام بده کافیه که از php-fpm استفاده کنید.

دلایلی که نباید از دایرکت ادمین استفاده کنید

یه کنترل پنل که واسه اجرا شدنش نیاز به نصب صد ها پکیج هست و اینا همه پیشنیاز هستن!

برای نصب دایرکت ادمین باید Selinux روی Centos غیرفعال کنید :-/ که باعث میشه امنیت سیستمتون بعد از نصب بیاد پایین

برای نصب شدن اش میره فایل های init دستکاری میکنه و تقربیا پاک کردنش غیرممکنه مگر اینکه os ری اینستال کنید

از آپاچی به عنوان وب  سرور پیش فرض استفاده میکنه که باعث میشه اصلا پرفورمنس خوبی نداشته باشه

همه چیزایی که بالا اشاره کردم مواردی هستن که توی سال ۲۰۲۱ دربارشون حرف زدن خنده داره

 

دلیل شهرت استفاده همزمان nginx و آپاچی چیست؟

میتونم بگم دلیل اصلیش اینه که nginx performance خیلی خوبی برای سرو کردن فایل های استاتیک و آپاچی امکانات خیلی فوق العاده ای داره مثل .htaccess ولی اگر بخوایم صادق باشیم توی performance هیچ جوره نمیتونه با nginx رقابت کنه دلیل دیگری هم که خیلی از reverse proxy توی دایرکت ادمین استفاده میشه اینه که شما در کنار امکانات فوق العاده آپاچی از سرعت بالا nginx هم میتونید استفاده کنید.

مرحله اول : اپدیت کردن Custom Build

دایرکت ادمین یه ابزار خیلی به درد بخور داره به اسم CustomBuild که به شما اجازه میده برنامه رو از روی سورس ری کامپایل کنید اگه از وژن های قبلی مثل ۱.۱ یا ۱.۲ استفاده میکنید حتما دستورات زیر را اجرا کنید اول از همه شما باید تمام ابراز های کامپایل نصب کنید .

yum install wget gcc gcc-c++ flex bison make bind bind-libs bind-utils openssl openssl-devel perl quota libaio \

libcom_err-devel libcurl-devel gd zlib-devel zip unzip libcap-devel cronie bzip2 cyrus-sasl-devel perl-ExtUtils-Embed \

autoconf

automake libtool which patch mailx bzip2-devel lsof db4-devel psmisc

net-tools systemd-devel libdb-devel perl-DBI xfsprogs rsyslog logrotate

crontabs

بعد از دانلود و نصب باید به دایرکتوری زیر برید و کامند ها را execute کنید

cd /usr/local/directadmin

mv custombuild custombuild_1.x

wget -O custombuild.tar.gz http://files.directadmin.com/services/custombuild/2.0/custombuild.tar.gz

tar xvzf custombuild.tar.gz

cd custombuild

./build

بعد از اجرا کردن دستور build

مرحله دوم: ایجاد تغییرات روی  CustomBuild

قبل از این که بریم سراغ ری کامپایل کردن دایرکت ادمین برید داخل فولدر CustomBuild به صورت زیر :

1 cd /usr/local/directadmin/custombuild

فایل با هر ادیتوری که دوست دارید باز کنید من اینجا از نانو استفاده میکنم اگه نانو رو نصب ندارید هم میتونید از vi استفاده کنید

nano options.conf

مرحله ۳ : تغییر دادن ورژن php

اکنون استفاده کردن از آپاچی و nginx در کنار هم به عنوان reverse proxy  فقط با php-fpm قابل انجام است پس حتما به روش زیر اون رو نصب کنید

خبر خوب اینجاس که دایرکت ادمین از دو تا ورژن php مختلف کنار هم پشتیبانی میکنه در حال حاظر هم که معروف ترینشون php5.6 و php7 با این روش هم میتونید از نرم افزار های جدید پشتیبانی کنید هم قدیمی خب ابتدا به این مسیر برید

cd /usr/local/directadmin/custombuild

./build set php1_mode php-fpm

./build set php2_mode php-fpm

./build set php1_release 7.0

./build set php2_release 5.6

توجه کنید استفاده از php ورژن ۵ به هیچ وجه توصیه نمیشود چون از سمت توسعه دهنده منسوخ اعلام شده ا ست!

بعد از این برید فایل options.conf باز کنید

nano options.conf

اگر اطلاعات زیر نبودن خودتون واردش کنید

php1_release=7.0

php1_mode=php-fpm

php2_release=5.6

php2_mode=php-fpm

در مرحله بعدی php ری کامپایل کنید با دستورات زیر

./build php n

./build rewrite_confs

دقت کنید که این پروسه ممکنه طول بکشه پس لطفا قطع اش نکنید!

خب حالا خودتون میتونید

مرحله ۴ : نصب کردن nginx

خب برای نصب سرویس nginx باید مراحل زیر را انجام دهید

cd /usr/local/directadmin/custombuild

./build set webserver nginx_apache

مرحله ۵: بعد از کامپایل کردن و ساختن وب سرور باید به CustomBuild بگیم که همه کانفیگ هارو دوباره روی سرور بنویسه که با کامند های زیر انجام میشه

./build update

./build nginx_apache

./build rewrite_confs

خطا های رایج در دایرکت ادمین هنگام استفاده از nginx

اولین مشکلی که شاید با آن رو به رو شوید خطای 404 انجینکس است

فایل nginx_server.conf به صورت زیر تغییر دهید.

توجه داشته باشید فایل در این دایرکتوری قرار دارد

cd /usr/local/directadmin/data/templates

 

[[email protected] custom]# nano nginx_server.conf

nginx_server.conf

|CUSTOM1| ?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| ?REALDOCROOT=`HOME`/domains/`DOMAIN`/public_html|

|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/usr/local/lib/php/|

server

{

|CUSTOM|

listen |IP|:|PORT_80|;

|MULTI_IP|

server_name |DOMAIN| www.|DOMAIN| |SERVER_ALIASES|;

access_log /var/log/nginx/domains/|DOMAIN|.log;

access_log /var/log/nginx/domains/|DOMAIN|.bytes bytes;

error_log /var/log/nginx/domains/|DOMAIN|.error.log;

root |DOCROOT|;

index index.php index.html index.htm;

|NGINX_PHP_CONF|

|*if HAVE_NGINX_PROXY=”1″|

location /

{

|CUSTOM2|

|LOCATION_INSERT|

# access_log off;

proxy_buffering |PROXY_BUFFERING|;

proxy_pass http://|IP|:|PORT_8080|;

proxy_set_header X-Client-IP  $remote_addr;

proxy_set_header X-Accel-Internal /nginx_static_files;

proxy_set_header Host         $host;

proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

proxy_hide_header Upgrade;

}

location /nginx_static_files/

{

# access_log  /var/log/nginx/access_log_proxy;

alias   |DOCROOT|/;

internal;

}

|*else|

|NGINX_REDIRECTS|

|PROTECTED_DIRECTORIES|

|EXTRA_LOCATIONS|

|*endif|

|CUSTOM3|

include /etc/nginx/webapps.conf;

|CUSTOM4|

}

منابع:

https://www.vultr.com/docs/installing-nginx-on-directadmin

https://www.vultr.com/docs/upgrading-to-custombuild-2-0-with-directadmin