Như bạn đã biết, Apache và Nginx đều là máy chủ web miễn phí, mã nguồn mở và mạnh mẽ trên toàn thế giới. Apache nổi tiếng về sức mạnh trong khi Nginx nổi tiếng về tốc độ. Cả hai đều có một số nhược điểm và lợi ích. Nginx sử dụng PHP-FPM để tải các tệp PHP trong khi Apache tự tải PHP. Apache được sử dụng cho phần động của trang web trong khi Nginx phục vụ các tệp tĩnh như đồ họa, tệp CSS và tệp js.
Bạn nên sử dụng cả hai trên một máy chủ duy nhất và tận dụng lợi ích từ cả hai. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng Nginx làm máy chủ web và proxy ngược cho máy chủ web Apache trên CentOS 8.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Apache và cho phép dịch vụ này khởi động khi khởi động lại hệ thống bằng lệnh sau:
Thay đổi bài đăng từ 80 thành 8080 như hiển thị bên dưới:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Apache để áp dụng các thay đổi:
Tiếp theo, hãy kiểm tra cổng lắng nghe Apache bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy tạo tệp info.php bên trong thư mục gốc web của Apache:
Thêm dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, mở trình duyệt web của bạn và truy cập URL . Bạn sẽ thấy trang sau:
Sau khi Nginx đã được cài đặt, hãy khởi động dịch vụ Nginx và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Đầu tiên, hãy tạo tệp cấu hình máy chủ ảo Nginx mới bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại máy chủ web Nginx để áp dụng các thay đổi:
Bây giờ, hãy mở trình duyệt web của bạn và truy cập URL
. Bạn sẽ thấy trang sau:
Như bạn thấy, PHP được phục vụ bởi máy chủ web Nginx.
Bạn nên sử dụng cả hai trên một máy chủ duy nhất và tận dụng lợi ích từ cả hai. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng Nginx làm máy chủ web và proxy ngược cho máy chủ web Apache trên CentOS 8.
Điều kiện tiên quyết
- Một máy chủ chạy CentOS 8.
- Một tên miền được trỏ bằng IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình cho máy chủ.
Cài đặt Apache và PHP
Đầu tiên, bạn sẽ cần cài đặt máy chủ web Apache và PHP trên máy chủ của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install httpd php php-cli -y
Mã:
systemctl start httpd
systemctl enable httpd
Cấu hình Máy chủ Web Apache
Theo mặc định, máy chủ web Apache lắng nghe trên cổng 80. Vì vậy, bạn sẽ cần cấu hình máy chủ web Apache để lắng nghe trên cổng 8080. Bạn có thể thực hiện bằng cách chỉnh sửa tệp cấu hình chính của Apache:
Mã:
nano /etc/httpd/conf/httpd.conf
Mã:
Listen 8080
Mã:
systemctl restart httpd
Mã:
ss -antpl | grep httpd
Mã:
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))
Mã:
nano /var/www/html/info.php
Mã:
Tiếp theo, mở trình duyệt web của bạn và truy cập URL . Bạn sẽ thấy trang sau:
Cài đặt Nginx Web Server
Tiếp theo, bạn sẽ cần cài đặt gói Nginx trên máy chủ của mình. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
dnf install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Cấu hình Nginx làm Proxy ngược cho Apache
Bây giờ, bạn sẽ cần cấu hình Nginx làm proxy ngược để chuyển tiếp tất cả các yêu cầu đến trên cổng 80 đến máy chủ web Apache đang lắng nghe trên cổng 8080.Đầu tiên, hãy tạo tệp cấu hình máy chủ ảo Nginx mới bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/proxy.conf
Mã:
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; }}
Mã:
systemctl restart nginx
Như bạn thấy, PHP được phục vụ bởi máy chủ web Nginx.