Nginx
nginx 不在蜂窩數據連接上為站點提供服務
我有一個執行 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 上應該是:
rm /etc/nginx/sites-enabled/default
然後添加
default_server
到您的站點虛擬主機定義:listen 80 default_server; listen 443 ssl default_server;
重新載入:
nginx -s reload
用 curl 測試:
curl -H "Host: mysite.com" mysite.com curl mysite.com
第一個請求發送主機頭,第二個沒有。兩者都應該返回相同的結果,因為 mysite.com 現在是埠 80 和 443 的預設值(一個 default_server 埠)。
這就像一種蠻力方法,更聰明的方法是調試請求,如果一切設置正確,這不應該發生。