Nginx
Nginx 不檢查啟用站點的伺服器塊
我已經設置了 nginx,但我正在努力設置我的伺服器塊。我已經在 /etc/nginx.xml 中創建了站點可用和站點啟用文件夾。之後,我創建了一個名為我要設置的子域的文件,並放入以下內容:
subdomain.mydomain.com(當然換成我的真實域名)
upstream subdomain.mydomain.com { server 127.0.0.1:1234; keepalive 30; } server { listen 80; listen [::]:80; server_name subdomain.mydomain.com; access_log off; error_log /var/log/nginx/subdomain.mydomain.com-error.log crit; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://subdomain.mydomain.com; proxy_redirect off; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; } }
然後我執行了以下命令:
ln -s /etc/nginx/sites-available/subdomain.mydomain.com /etc/nginx/sites-enabled/ service nginx restart
Nginx 重新啟動沒有問題,但是子域無法訪問。當我將上述伺服器塊配置複製粘貼到我的 /etc/nginx/nginx.conf http 塊中時,它完全可以正常工作。
我的問題:
為什麼它沒有從可用站點文件夾中載入我的伺服器塊?我想這是向 nginx 添加新站點的首選方式。
Nginx.conf:
預設情況下,您的發行版的 nginx 配置似乎根本不讀取
/etc/nginx/sides-enabled
目錄;您可能遵循了有關設置的另一個發行版的說明。您的 nginx 查找配置文件的唯一位置是/etc/nginx/conf.d/
,由您的以下行確定nginx.conf
:include /etc/nginx/conf.d/*.conf;
因此,您應該將配置文件移動到
/etc/nginx/conf.d/subdomain.mydomain.com.conf
(請注意.conf
後綴),或者更改 nginx 主配置以將文件也包含在您的啟用站點的文件夾中(不推薦,因為您的發行版的包管理器可能會在未來更新期間覆蓋它) .