Когда я запускаю команду для проверки моей конфигурации, я получаю сообщение об ошибке, в котором говорится о наличии нескольких дубликатов [::]:80
. До этого у меня была проблема с дублированием нескольких серверов по умолчанию.
Когда у меня возникла проблема с несколькими серверами по умолчанию, мой файл выглядел так
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name munki;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /report {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location /munki_repo/ {
alias /usr/local/munki_repo/;
autoindex off;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Чтобы решить эту проблему, я изменил конфигурацию на:
server {
listen 80;
listen [::]:80 ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name munki;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /report {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location /munki_repo/ {
alias /usr/local/munki_repo/;
autoindex off;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
После изменения я начал получать сообщение об ошибке «дубликаты опций [::]: 80». Я не уверен, что я делаю не так с этим. Я впервые работаю с Nginx. Есть идеи, в чем может быть проблема?
nginx -t
выход). Какую версию nginx вы используете?ipv6only=on
может не понадобиться больше. У меня есть это в моем блоке сервера:listen 80;listen [::]:80;
и он работает нормально. У вас есть другие серверные блоки?Ответы:
Я создаю ответ из моего предыдущего комментария.
Пожалуйста, опубликуйте сообщение об ошибке (
nginx -t
вывод), так как оно может содержать полезную информацию.Какую версию nginx вы используете? Опция
ipv6only=on
может больше не понадобиться и наоборот может создать проблемы. У меня есть это в моем блоке сервера, и он работает нормально:Есть ли у вас другие серверные блоки, которые вы не опубликовали, которые могут конфликтовать друг с другом?
Объяснение: давайте прочитаем текущую (1.13) документацию по nginx :
Этот параметр включен по умолчанию, что означает, что вы не должны использовать
ipv6only=on
. Это не приносит пользы и потенциально может создать проблемы (см. Следующий пункт).Он может быть установлен только один раз означаетчто есливас есть большечем когдато везде в конфигурации (например, в разных блоках сервера), то будет сгенерированооб ошибке:
nginx: [emerg] duplicate listen options for [::]:80
.источник