Hi all,
Hiện tại mình đang triển khai Nginx làm Reversed Proxy cho Apache.
Mô hình của mình thế này: Client -> Nginx (IP: 172.20.20.237) -> Apache (IP: 172.20.20.238)
-> Đã kiểm tra cấu hình thì thấy báo OK nhưng khi mình chạy thì lại không được.
1. Kiểm tra cấu hình Nginx
[root@Nginx ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
2. Selinux và Iptables:
[root@Nginx ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@Nginx ~]# service iptables status
iptables: Firewall is not running.
# Define Server document root
DocumentRoot /var/www/html/
# Define the virtual host
<VirtualHost 172.20.20.238:8080>
ServerName www.hienhai.com
ServerAlias hienhai.com
DocumentRoot /var/www/html/hienhai.com
<Directory "/var/www/html/hienhai.com">
Options FollowSymLinks -Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
RewriteEngine on
</VirtualHost>
- Đã chỉnh sửa :
Listen 8080
- Đã cài đặt module:mod_rpaf với cấu hình như sau:
<IfModule mod_rpaf.c>
RPAF_Enable On
RPAF_ProxyIPs 127.0.0.1 172.20.20.237
RPAF_Header X-Forwarded-For
RPAF_SetHostName On
RPAF_SetHTTPS On
RPAF_SetPort On
</IfModule>
- Đã Disabled Selinux và Stop Iptables.
6. Kết quả:
Khi vào web thì hiển thị thông báo lỗi:
Bạn kiểm tra lại xem apache có đang hoạt động bình thường không (truy cập trực tiếp ko qua proxy), kiểm tra iptables tại server apache đã accept port 8080 chưa.
Bạn kiểm tra lại xem apache có đang hoạt động bình thường không (truy cập trực tiếp ko qua proxy), kiểm tra iptables tại server apache đã accept port 8080 chưa.
Hi tuanksor:
- Trước khi cấu hình Nginx thì mình đã test thử Apache chạy Port 8080 OK.
- Info mình đưa ra mình cũng đã nói là Iptables đã Stop luôn rồi
Lỗi 502 thường do frontend (nginx as proxy) nhận đc invalid respone từ backend (apache) (có thể apache ko chạy, hay bị drop bởi iptables). Bạn kiểm tra truy cập từ nginx -> apache xem thế nào
Code: