Nginx

nginx 忽略了我的包含指令?

  • July 5, 2015

我目前正在從 Apache 遷移到 nginx。我有幾個域將託管在具有一個 IP 地址的同一台機器上。雖然我已經配置nginx --prefix=/my/path它似乎nginx不包括我的虛擬主機配置文件。

我目前的 nginx.conf 如下所示:

http {
   include       mime.types;
   default_type  application/octet-stream;

   log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

   sendfile        on;
   #tcp_nopush     on;

   #keepalive_timeout  0;
   keepalive_timeout  65;

   gzip  on;

   # Don't show server version.
   server_tokens off;

   index index.html index.htm index.php;

   # Default server
   server {
       listen          81 default;
       server_name     _;
       access_log      logs/access.log main;
       server_name_in_redirect  off;
       root  html;
   }

   ## Load virtual host conf files. ##
   include conf/vhosts/*/*.conf; # config/vhosts/domain.com/domain.conf ; subodmain.conf and etc

}

這是我在 config/vhosts/domain.com/domain.com.conf 中唯一的虛擬主機配置:

server {
   listen          81;
   server_name     domain.com;
   access_log      logs/domain.com.access.log main;

   root            "/www/domain.com/htdocs";
   index           index.html;
}

我還嘗試設置配置文件的絕對路徑,但它也不起作用。所有請求都登陸預設伺服器。但是,如果您將 的內容插入conf/vhosts/domain.com/domain.com.confconf/nginx.conf http{}域中就可以了。

我已經嘗試了幾個小時來解決這個問題,但我想我做錯了什麼?

正如文件所述。

從 0.6.7 版本開始,路徑是相對於 nginx 配置文件 nginx.conf 的目錄,而不是相對於 nginx 前綴目錄。

如果您驗證路徑是相對於 nginx 配置文件的,那麼它仍然無法工作嗎?

到目前為止,上面的答案是錯誤的。根據文件:

nginx 只使用絕對路徑,配置文件中的所有相對路徑都是相對於 –prefix==PATH 的。

http://wiki.nginx.org/CoreModule

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