nginx 忽略了我的 include 指令?

nginx 忽略了我的 include 指令?

我目前正在从 Apache 迁移到 nginx。我有几个域将托管在同一台机器上,使用一个 IP 地址。虽然我已经配置了,但nginx --prefix=/my/path似乎nginx不包括我的 vhost 配置文件。

我当前的 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 中唯一的 vhost 配置:

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.conf域中conf/nginx.conf http{},效果就很好了。

我已经尝试弄清楚这个问题几个小时了,但我想我做错了什么?

答案1

正如文档所述。

从 0.6.7 版本开始,路径是相对于 nginx 配置文件 nginx.conf 的目录,而不是相对于 nginx 前缀目录。

如果您验证该路径是相对于 nginx 配置文件的,那么它仍然不起作用吗?

答案2

上面的答案目前是错误的。根据文档:

nginx 只使用绝对路径,配置文件中的所有相对路径都是相对于--prefix==PATH的。

http://wiki.nginx.org/CoreModule

相关内容