اگر تصمیم دارید از سرور LAMP فقط Apache به یک سرور مبتنی بر Apache + NGINX تغییر وضعیت دهید، این مطلب به رایجترین مشکلاتی که ممکن است با آنها مواجه شوید، میپردازد.
Nginx دارد یک سرور HTTP و پروکسی معکوس است که عمری بیشتر از یک دهه دارد. Nginx مزایای خود را نسبت به آپاچی در بسیاری از موارد ثابت کرده است:
- Nginx هنگام ارائه حجم بالای درخواست، سریعتر کار میکند.
- Nginx برای هر درخواست، فرآیند یا رشته جدیدی ایجاد نمیکند؛ از این رو حافظه کمتری مصرف کرده و با حجم درخواست بالا بسیار بهتر از آپاچی عمل میکند.
- Nginx در ارائه محتوای ثابت کارآمد است. استفاده از حافظه کم است اما در مقایسه با آپاچی، زمان پردازش بیشتری را مصرف میکند.
- Nginx یک راه حل عالی برای سرورهای خصوصی اختصاصی و مجازی است که در آن به توانایی htaccess نیازی ندارید.
برای استفاده از بهترین ویژگیهای هر دو سرور، میتوان وب سرور nginx را در کنار آپاچی نصب کرد؛ از این طریق، داراییهای استاتیک سرویس NGINX و آپاچی که پردازشکننده محتوای پویا است را کنار هم خواهیم داشت.
استفاده از CustomBuild2.X برای نصب آپاچی و nginx
Custombuild 2به ما این امکان را میدهد تا بدون نیاز به اسکریپت، افزونه و افزونههای شخص ثالث، یک NGINX + Apache با پروکسی معکوس روی سرور مجهز به Directadmin داشته باشیم.
شروع استفاده از Custombuild 2 بسیار آسان است. نسخههای جدید این برنامه امکان نصب آسان و سریع Apache + NGINX را به عنوان یک سرور پروکسی معکوس فراهم میکنند. تنها پیشنیاز برای انجام این کار، نصب CustomBuild2.x است. از آنجایی که نسخه 2.x در سال 2006 منتشر شد، این احتمال وجود دارد که نصب شما تا سال 2019 آن را داشته باشد. در صورتی که می خواهید نسخه CustomBuild را بررسی کنید:
cd /usr/local/directadmin/custombuild
./build version
دستور بالا باید نتایجی مشابه نتیجه زیر ایجاد کند:
[root@myserver custombuild]# ./build version
2.0.0 (rev: 2084)
همچنین نسخه Directadmin را بررسی کنید. باید 1.45.2 یا بالاتر باشد:
/usr/local/directadmin/directadmin v
Version: DirectAdmin v.1.56.4
اگر تغییراتی در آپاچی یا هر نرمافزار دیگری که با cusombuild نصب و یا به روز شده است ایجاد کرده باشید، آنها رونویسی میشوند. از آنجایی که نمیخواهید تغییرات از بین بروند، از راه رسمی برای سفارشیسازی استفاده کنید و یک فهرست سفارشی در /usr/local/directadmin/custombuild ایجاد کنید.
مطمئن شوید که در دایرکتوری درست قرار دارید
cd /usr/local/directadmin/custombuild
mkdir -p custom
cp -Rp configure custom
پس از آن میتوانید تنظیمات خود را در صورت نیاز ویرایش کنید. پس از آماده شدن با تمام سفارشیسازیها، دستورات زیر به شما کمک میکند تا به جای آپاچی به apache+nginx به عنوان یک پروکسی معکوس بروید.
cd /usr/local/directadmin/custombuild
./build update
./build set webserver nginx_apache
./build nginx_apache
./build rewrite_confs
آخرین دستور تمام فایلهای پیکربندی را اگر در فهرست سفارشی نباشند، بازنویسی میکند. همچنین پس از نصب پراکسی، این امکان وجود دارد که پراکسی معکوس nginx تصاویر را نمایش ندهد. Nginx تمام داراییهای استاتیک وبسایت را ارائه میکند.
کاربر nginx حق خواندن و اجرایی کردن در فهرست وبسایت را ندارد. اگر به کاربر nginx این اجازه را بدهید تا فایلهای موجود در فهرست public_html را وارد کند و +r را بخواند، این مشکل به راحتی برطرف میشود:
chmod 755 -R public_html
بهروزرسانی ۱:
IP واقعی در صفحه وضعیت سرور آپاچی
لطفاً اگر آخرین نسخه آپاچی را دارید که این مشکل را برطرف میکند، ادامه این مطلب را دنبال نکنید!
آپاچی IP های واقعی دریافت میکند، شما ممکن است این IP واقعی را در $_SERVER با PHP یا در لاگ های آپاچی ببینید اما IP نادرست را در وضعیت سرور آپاچی مشاهده کنید.
قبل از شروع، لطفاً مطمئن شوید که unzip را روی سرور خود نصب کرده باشید:
On RHEL/CentOS
Code:
yum install unzip
On Debian/Ubuntu
Code:
apt-get install unzip
برای دریافت IP واقعی به جای 127.0.0.1 در صفحه وضعیت سرور آپاچی، باید mod_rpaf را نصب کنید، زیرا remoteip در این مورد باگ است:
Code:
cd /usr/local/src
wget [URL]https://github.com/y-ken/mod_rpaf/archive/master.zip[/URL]
unzip master.zip
cd mod_rpaf-master
/bin/sed -i "s/remote_/client_/g" mod_rpaf-2.0.c
make && make install
و دستورالعمل های زیر را وارد کنید:
Code:LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so
<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFproxy_ips 127.0.0.1
RPAFsethostname On
RPAFheader X-Client-IP
</IfModule>
به /etc/httpd/conf/extra/httpd-includes.conf/ بروید و آپاچی را مجدد راهاندازی کنید.