همانطور که می‌دانید Apache و Nginx هر دو وب سرورهای رایگان، منبع باز و قدرتمندی در سراسر جهان هستند. آپاچی به داشتن قدرت بالا مشهور است در حالی که Nginx به داشتن سرعت بالا معروف است. هر دو مزایا و معایبی دارند. به عنوان مثال، Nginx از PHP-FPM به منظور بارگذاری فایل‌های PHP استفاده می‌کند؛ در حالی که Apache بدون نیاز به ابزاری PHP را بارگذاری می‌نماید. Apache به منظور بخش پویای وب سایت استفاده می‌شود؛ در حالی که Nginx فایل‌های ثابت مانند فایل‌های گرافیکی، CSS و js را ارائه می‌دهد.

 

پیشنهاد می‌شود که از هر دوی آن‌ها در یک سرور استفاده کرده و از مزایای هر دو بهره مند شوید. در این آموزش، نحوه استفاده از Nginx به عنوان یک وب سرور و پروکسی معکوس (Reverse proxy) برای وب سرور Apache در CentOS 8 شرح داده شده است.

دقت کنید که قبل از دنبال کردن این آموزش، به موارد زیر نیاز دارید:

  • یک سرور که سیستم عامل CentOS 8 بر روی آن نصب شده باشد. (در صورتی که می‌خواهید بدانید چه سیستم عاملی بر روی سرور شما نصب شده است،این مقاله را مطالعه بفرمایید:بدست آوردن نام توزیع لینوکسی )
  •  
  • یک نام دامنه که به IP سرور شما مرتبط شده است.
  •  
  • دسترسی به کاربر root یا کاربری که عضو گروه sudo باشد

 

این مطلب نیز ممکن است برای شما مفید باشد: پیکربندی گزارش های دسترسی و خطای Nginx

 

نصب Apache و PHP

ابتدا باید وب سرور Apache و PHP را در سرور خود نصب کنید. بدین منظور می‌توانید از دستور زیر استفاده نمایید:

dnf install httpd php php-cli -y

پس از اتمام نصب، سرویس Apache را راه‌اندازی کرده و با دستور زیر، راه‌اندازی آن را هنگام بالا آمدن سیستم نیز فعال نمایید:

systemctl start httpd
systemctl enable httpd

 

پیکربندی Apache Web Server

به طور پیش فرض، وب سرور Apache برروی پورت 80 گوش می‌دهد. بنابراین، برای شنود برروی پورت 8080، باید سرور Apache را پیکربندی کنید. شما می‌توانید این کار را با ویرایش فایل اصلی پیکربندی Apache انجام دهید:

nano /etc/httpd/conf/httpd.conf

مطابق شکل زیر پورت را از 80 به 8080 تغییر دهید:

Listen 8080

فایل را ذخیره کرده و ببندید و سپس سرویس Apache را مجدداً راه‌اندازی نمایید تا تغییرات اعمال شود:

systemctl restart httpd

اکنون، پورت شنود Apache را با دستور زیر بررسی کنید:

ss -antpl | grep httpd

خروجی دستور مشابه زیر خواهد بود:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))

 

پس از آن، یک فایل info.php داخل دایرکتوری root وب Apache ایجاد نمایید:

nano /var/www/html/info.php

و خط زیر را به آن اضافه کنید:

<?php phpinfo(); ?>

سپس فایل را ذخیره کرده و ببندید.

در مرحله بعد، مرورگر وب خود را باز کرده و آدرس URL http://your-server-ip:8080/info.php را در آن تایپ نمایید.

(به جای عبارت your-server-ip آدرس آی پی سرور خود را قرار دهید)

صفحه زیر باید نمایش داده شود:

 

این مطلب نیز ممکن است برای شما مفید باشد: ایمن سازی Nginx با Let’s Encrypt در CentOS 7

 

نصب وب سرور Nginx

در مرحله بعدی، باید بسته Nginx را روی سرور خود نصب کنید. این کار را می‌توانید با دستور زیر انجام دهید :

dnf install nginx -y

پس از نصب Nginx، سرویس Nginx را راه‌اندازی کرده و با دستور زیر راه‌اندازی آن را هنگام بالا آمدن سیستم نیز فعال نمایید:

systemctl start nginx
systemctl enable nginx

 

پیکربندی Nginx به عنوان reverse proxy برای Apache

اکنون، باید Nginx را به عنوان یک Reverse Proxy یا همان پروکسی معکوس پیکربندی کنید تا تمام درخواست‌های وارد شده به پورت 80 را به وب سرور Apache که در حال شنود پورت 8080 است، منتقل نماید.

ابتدا یک فایل جدید پیکربندی میزبان مجازی Nginx با دستور زیر ایجاد کنید:

nano /etc/nginx/conf.d/proxy.conf

و خطوط زیر را به آن اضافه نمایید:

server {
    listen 80;
    server_name test.example.com;

    location ~ \.php$ {
        proxy_pass http://your-server-ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

 

فایل را ذخیره کرده و ببندید و سپس، وب سرور Nginx را مجدداً راه اندازی کنید تا تغییرات اعمال شود:

systemctl restart nginx

اکنون، مرورگر وب خود را باز کرده و آدرس URL http://test.example.com/info.php را وارد نمایید. صفحه‌ای مشابه زیر نمایش داده می‌شود:

 

همانطور که مشاهده می‌کنید، PHP توسط یک وب سرور Nginx پشتیبانی می‌شود.

 

 

 

منبع:

howtoforge