Nginx

Nginx 不檢查啟用站點的伺服器塊

  • September 21, 2017

我已經設置了 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:

https://ghostbin.com/paste/bfgqz

預設情況下,您的發行版的 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 主配置以將文件也包含在您的啟用站點的文件夾中(不推薦,因為您的發行版的包管理器可能會在未來更新期間覆蓋它) .

引用自:https://serverfault.com/questions/874816