1

我的问题与此处的问题类似。但在我的情况下,我使用的是 Godaddy 公共域名,它指向一个公共地址并路由到我的服务器,该服务器具有固定的私有 IP 地址(192.168.0.145)。如果我在 nginx.conf 中将服务器名称指定为 domain.com,则没有作品。但是,如果我给 localdomain 或服务器私有 ip,即使我浏览到http://domain.com也可以。我什至尝试将域名添加到我的主机失败 [127.0.0.1 domain_name] 但没有运气。我在网上搜索过,但从未见过有人在 nginx.conf 中放置私有 ip 或 localdomain 而不是域地址。我真的需要将所有http://domain.name重定向到http://www.domain.com,但是由于我无法放置我的域名,因此我找不到解决方案。我错过了一些明显的东西吗?

server {
        listen 80;
        server_name 192.168.0.145;
        location / {
            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;
            proxy_pass http://localhost:8080;
        }
}
4

2 回答 2

0

在您的服务器部分

server_name www.domain.com domain.com 192.168.0.145;

if ($host !~* ^www\.domain\.com$ ) {
    rewrite ^(.*)$ http://www.domain.com$1 permanent;
}
于 2013-05-06T06:28:20.210 回答
0

这是一个棘手的解决方案,您定义了 2 个服务器,并且非 www 重定向到 www

server{
    server_name domain.com;
    return 301 $scheme://www.domain.com$request_uri
}
server{
    server_name www.domain.com;
    #the rest of your normal config goes here
}

所有非 www 将匹配 server#1 并将被定向到匹配 server#2 的格式

于 2013-05-13T18:48:27.670 回答