我的问题类似于here。但在我的情况下我使用的是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;
}
}
答案 0 :(得分:0)
在您的服务器部分
server_name www.domain.com domain.com 192.168.0.145;
if ($host !~* ^www\.domain\.com$ ) {
rewrite ^(.*)$ http://www.domain.com$1 permanent;
}
答案 1 :(得分: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将匹配服务器#1,并将指向与服务器#2
匹配的格式