nginx显示IP地址而不是域

wkyowqbh  于 2023-10-17  发布在  Nginx
关注(0)|答案(3)|浏览(181)

我有一个godaddy A记录指向我的数字海洋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地址。
如何显示域名?

acruukt9

acruukt91#

这很可能是从proxy_pass重定向。我不知道你在后端运行什么,但你可以尝试通过主机名。

proxy_set_header Host      $host;

在proxy_pass之后添加这一行,告诉后端请求头中的域。

wbrvyc0a

wbrvyc0a2#

重定向到IP地址 * 很可能 * 是由proxy_pass中的后端完成的。您可以尝试添加一些头来帮助后端理解请求的上下文。
我建议作为初学者使用以下配置:

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、上下文路径等。

4bbkushb

4bbkushb3#

这个问题来自Godaddy的默认转发配置。您必须与他们的支持团队交谈,以进行必要的更改。这就是我如何解决与他们相同的问题。

相关问题