Запуск второго сайта в nginx
На сервере установлена система openmediavault, поэтому в nginx уже запущен один сайт (web панель для управления). Мне необходим еще один сайт для просмотра логов прокси сервера lightsquid. При попытке запустить службу сталкиваюсь с одной и той же ошибкой занятого 80 порта:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2020-08-13 09:06:13 +05; 5s ago
Docs: man:nginx(8)
Process: 9521 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 9522 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
авг 13 09:06:11 NAS systemd[1]: Starting A high performance web server and a reverse proxy server...
авг 13 09:06:11 NAS nginx[9522]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
авг 13 09:06:11 NAS nginx[9522]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
авг 13 09:06:12 NAS nginx[9522]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
авг 13 09:06:12 NAS nginx[9522]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
авг 13 09:06:13 NAS nginx[9522]: nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
авг 13 09:06:13 NAS nginx[9522]: nginx: [emerg] still could not bind()
авг 13 09:06:13 NAS systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE
авг 13 09:06:13 NAS systemd[1]: nginx.service: Failed with result 'exit-code'.
авг 13 09:06:13 NAS systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Ниже конфиги обоих сайтов в nginx:
server {
server_name openmediavault-webgui;
root /var/www/openmediavault;
index index.php;
autoindex off;
server_tokens off;
sendfile on;
large_client_header_buffers 4 32k;
client_max_body_size 25M;
error_log /var/log/nginx/openmediavault-webgui_error.log error;
access_log /var/log/nginx/openmediavault-webgui_access.log combined;
error_page 404 = /404.php;
location /404.html {
internal;
}
location /extjs6/ {
alias /usr/share/javascript/extjs6/;
expires 2d;
}
location ~ ^/(css|js|images)/ {
expires 2d;
}
location /favicon {
expires 14d;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.3-fpm-openmediavault-webgui.sock;
fastcgi_index index.php;
fastcgi_read_timeout 60s;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
listen [::]:80 default_server ipv6only=off;
include /etc/nginx/openmediavault-webgui.d/*.conf;
}
и второй:
server {
listen 80;
server_name _;
satisfy any;
allow 192.168.10.0/24;
deny all;
# access_log /var/log/nginx-access.log main;
# error_log /var/log/nginx-error.log info;
location / {
root /var/www/lightsquid/lightsquid-1.8/;
index index.cgi;
}
location ~ (\.cgi|\.pl) {
gzip off;
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.lightsquid.socket;
fastcgi_index index.cgi;
include "fastcgi_params";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
expires 1m;
root /var/www/lightsquid/lightsquid-1.8/;
}
}
В конфиге openmediavault есть строчка listen [::]:80 default_server ipv6only=off
Насколько я понимаю, параметр default_server нужно убирать, но это не помогло. Если закомментировать строку, то сервер запустится но сайты работать не будут.
Ответы (2 шт):
Вы пытаетесь запустить два сайта на одном и тоже же сокете (сокет сочетание ip и port). Это невозможно, на 1 порту может работать только 1 сайт
server_name _;
Замените на полные домены, например site1.lan и site2.lan и добавьте их на днс сервер или в hosts.
default_server уберите
Для запуска в мир нужно купить один или 2 домена: site1.example.com и site2.example.com. Указать их как имена сайтов в nginx.
Бесплатно можно взять домен .tk или на сервисах ddns.