我有一个运行 nginx 的网络服务器。如果我通过 wifi 连接访问该网站,它会加载该网站。如果我在手机上使用 LTE 访问它,它只会显示默认的“欢迎使用 nginx!” 页
这是我的站点配置文件:
server {
listen 80;
listen 443 ssl;
server_name {mysite.com};
root /path/to/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
include /etc/nginx/conf.d/php-fpm;
}
ssl_certificate /etc/letsencrypt/live/{mysite.com}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{mysite.com}/privkey.pem;
}
“欢迎”让我怀疑 nginx 没有读取
Host
请求中的标头,并且响应是默认的虚拟主机定义(即欢迎消息)。删除您的默认虚拟主机,在 debian 上应该是:
然后添加
default_server
到您的站点虚拟主机定义:重新加载:
nginx -s reload
用 curl 测试:
第一个请求发送主机头,第二个没有。两者都应该返回相同的结果,因为 mysite.com 现在是端口 80 和 443 的默认值(一个 default_server 端口)。
这就像一种蛮力方法,更聪明的方法是调试请求,如果一切设置正确,这不应该发生。