آموزش نصب وب سرور 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