我刚刚安装了nginx,并为test.example.com创建了一个新配置。 哪个有用。
但是example.org也指向我的服务器。现在,如果我去example.org,nginx会将我重定向到test.example.com。
我已经读过你需要创建一个默认的服务器条目,例如返回444; 这就是我做的。 这是我对该网站的配置:
server {
listen IP:80;
server_name test.example.com;
server_tokens off;
root /nowhere;
rewrite ^ https://test.example.com$request_uri permanent;
}
server {
listen IP:443;
server_name test.example.com;
server_tokens off;
root [...];
[...]
}
我之前在nginx.conf中添加的默认服务器条目(也尝试过)“include / etc / nginx / sites-enabled / *;”
server {
# use default instead for nginx 0.7.x, default_server for 0.8.x+
listen IP:80 default_server;
server_name _;
return 444;
}
对我来说,这看起来是正确的。但我仍然会从example.org重定向到test.example.com。
答案 0 :(得分:0)
您不应该在默认设置中设置server_name。它确实需要在nginx配置中的实际服务器块之前。
444也是一个奇怪的错误。您应该返回404以指示找不到服务器,而不是自定义Nginx错误代码。
修改
对于SSL无法正常工作,您似乎没有在配置文件中实际设置SSL证书或打开ssl。
server {
listen 443 default_server ssl;
ssl_certificate /usr/local/nginx/conf/cert.pem;
ssl_certificate_key /usr/local/nginx/conf/cert.key;
server_name test.example.com;
server_tokens off;
root [...];
}