我有一个运行nginx的web服务器。 如果我通过wifi连接访问网站,它会加载网站。 如果我在手机上使用LTE进行访问,它只会显示默认的“Welcome to nginx!” 页
这是我的网站configuration文件:
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上应该是:
rm /etc/nginx/sites-enabled/default
然后将default_server添加到您的站点虚拟主机定义中:
listen 80 default_server; listen 443 ssl default_server;
重新加载: nginx -s reload
curltesting:
curl -H "Host: mysite.com" mysite.com curl mysite.com
第一个请求是发送主机头,第二个不是。 两者都应该返回相同的becase mysite.com现在默认为端口80和443(一个端口为default_server)。
这就像一个暴力方法,更聪明的方法是debugging请求,如果一切正确设置,这不应该发生。