我有一个Godaddy A记录,指向我的Digital Ocean IP地址。
这是nginx的配置。
server {
listen 80 default_server;
server_name domain.com www.domain.com;
location / {
proxy_pass 'http://127.0.0.1:3004';
}
}
当我输入domain.com
时,它会转到服务器,但地址栏会显示IP地址。
如何显示域名?
答案 0 :(得分:2)
最有可能是proxy_pass的重定向。我不确定您在后端运行什么,但是您可以尝试传递主机名。
proxy_set_header Host $host;
在proxy_pass之后添加此行,以告知后端请求标头中的域。
答案 1 :(得分:0)
由您的后端在proxy_pass
中完成重定向到IP地址的可能性最大。
您可以尝试添加一些标头,以帮助后端了解请求的上下文。
我首先建议以下配置:
server {
listen 80 default_server;
server_name domain.com www.domain.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
location / {
proxy_pass 'http://127.0.0.1:3004';
}
}
如果使用Node.JS,则可能还需要以下行:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
还请检查后端的配置。您可能需要设置访问URL,上下文路径等。