server {
listen x.x.x.X:80;
server_name www.x.net;
return 301 https://$server_name$request_uri;
}
server {
listen x.x.x.x:443 ssl http2;
server_name x.net www.x.net;
root /home/x/public_html;
location / {
proxy_pass https://x.x.x.x:4343;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
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 https;
include microcache.inc;
include proxy.inc;
}
}
这是一个简单的设置,可以在另一台服务器上完美运行。我正在迁移,但这个设置不再适用于 nginx 1.10+
我的问题:在网站的源代码中,它显示的是实际 IP 而不是主机名。nginx 为什么会这样?我修改了 apache 的 httpd.conf,将 4343 个请求传递给 nginx。Nginx 应该可以毫无问题地为网站提供服务,但事实并非如此它没有正确显示主机名,而是使用主机 IP。
非常感谢您的意见,最可能的问题是什么?标准代理.inc..
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;