У меня есть субдомен, который я хочу прокси через Nginx на Node.js.
domain.tld
в настоящее время маршрутизируется стандартным способом через /opt/nginx/conf/nginx.conf
.
Однако я также хочу subdomain.domain.tld
направиться к domain.tld:8000
.
Для этого я вставил в /etc/nginx/sites-available/subdomain.domain.tld.conf
:
http{
server {
listen 0.0.0.0:80;
server_name subdomain.tld.com;
access_log /var/log/nginx/subdomain.domain.log;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
}
Nginx запускается нормально. Серверы имен поддомена настроены правильно.
Что я делаю не так? Большое спасибо за любую помощь заранее.
sites-available/
к sites-enabled/
./opt/nginx/conf/nginx.conf
: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
Прежде всего, проверьте наличие ошибок в журнале во время запуска.
Возможно, он не загружает этот сервер из-за этого:
proxy_pass 127.0.0.1:8000;
Что следует изменить на:
proxy_pass http://127.0.0.1:8000;
Помимо этого, сравните listen
директива к этому в вашем другом server
блоки - убедитесь, что он совпадает. Если они привязаны к определенному адресу вместо 0.0.0.0, то это server
не будет получать запросы.
редактировать:
Для тех, кто найдет этот вопрос в будущем, поддомен server
блок не был включен - и include
блок должен быть в пределах существующего http
блок, чтобы избежать конфликтов привязки адресов.