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