I am using two Nginx machines as reverse proxy,but get wrong Host in the Browser.The detail conf is blow. In Proxy1(192.168.0.1)
upstream proxy2 {
server 192.168.0.2:8040;
}
server {
listen 8041;
server_name localhost;
root html;
index index.html index.htm index.php;
location / {
proxy_pass http://proxy2;
#Proxy Settings
#proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
In Proxy2 (192.168.0.2)
upstream backend {
server 192.168.0.2:8041;
server 192.168.0.3:8041;
}
server{
listen 8040;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
In the backend server I just use php redirect / to /auth/login
Then when I visit http://192.168.0.1:8041 , I show go to http://192.168.0.1:8041/auth/login, but it redirect tohttp://192.168.0.1:8040/auth/login , looks like something go wrong with the port passing . Anyone can help me ?