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
}
И это единственный конфиг vhost, который я имею в 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.conf
в conf/nginx.conf http{}
домен работает просто отлично.
Я пытался понять это уже пару часов, но, думаю, я что-то не так делаю?
2 ответа
Как говорится в документации.
Начиная с версии 0.6.7, пути относятся к каталогу файла конфигурации nginx nginx.conf, но не к каталогу префикса nginx.
Если вы проверите, что путь указан относительно файла конфигурации nginx, он все равно не будет работать?
Ответ выше является неправильным на данный момент. Согласно документам:
nginx использует только абсолютные пути, все относительные пути в файлах конфигурации относятся к --prefix == PATH.