Cấu hình Nginx làm reverse proxy cho Apache
Cấu hình Nginx làm reverse proxy cho Apache, một mô hình đang được sử dụng rộng rãi hiện nay. Lý do chính dẫn đến việc nhiều người chọn giải pháp Nginx làm reverse proxy vì Nginx có khả năng phục vụ file tĩnh tốt hơn, nhận được nhiều request hơn, chiếm ít tài nguyên hơn, có được điều dó nhờ cơ chế tiếp nhận và xử lý request của Nginx hiệu quả hơn các MPMs hiện có của Apache.
Đầu tiên các bạn cần cài đặt Nginx và khởi động dịch vụ thông qua lệnh :
# yum install nginx -y (máy phải kết lối internet)
# chkconfig nginx on
# service nginx start
Tuy nhiên nếu như bạn đã cài đặt httpd (Apache) trước và đang chạy, sẽ dẫn đến hiện tượng Nginx không thể chạy được do lỗi về port (xung đột port), do đó các bạn cần đổi port của Apache trước khi chạy Nginx. Bạn có thể tạo một virtualhost với Apache như ví dụ dưới đây:
Listen 127.0.0.1:8080
<VirtualHost *:8080>
ServerAdmin info@webquangngai.com
DocumentRoot /var/www/html
ServerName webquangngai.com
</VirtualHost>
Sau đó các bạn cần khởi động lại httpd (Apache) trước để Apache chạy trên port khác : # service httpd restart
Các bạn tạo một file proxy.conf trong thư mục /etc/nginx/conf.d với nội dung như sau để cấu hình Nginx làm reverse proxy.
Trích dẫn:server {
server_name [domain của bạn];
listen 80;
root /var/www/;
index index.php index.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://[domain của bạn]:[port của bạn];
}
location ~ /\.ht {
deny all;
}
}
Trong đó có 3 điểm bạn cần thay đổi tùy theo hệ thống của bạn, đó là domain của bạn và port của bạn. Domain của bạn là domain của virtualhost của Apache và port của bạn chính là port của virtualhost của Apache. Domain của bạn phải khai báo trùng nhau, còn port của bạn tùy thuộc vào trong virtualhost. Ví dụ với virtualhost của Apache như ví dụ đầu tiên thì domain của bạn là ceh.vn và port của bạn là 8080.
Khởi động lại Nginx và công việc hoàn thành : # service nginx restart