[::] : 80 오류에 대한 Nginx 중복 청취 옵션


12

구성을 테스트하기 위해 명령을 실행하면에 대한 중복 항목이 여러 개 있다는 오류가 발생합니다 [::]: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;있으며 제대로 실행됩니다. 다른 서버 블록이 있습니까?
simlev

그것은 당신이 제안한 것을 작동 시켰습니다. 감사합니다! 그런 생각은하지 않았을 것입니다.
ztmcoder

답변:


27

이전 의견에서 답변을 작성 중입니다.

nginx -t유용한 정보가 포함될 수 있으므로 오류 메시지 ( 출력)를 게시하십시오 .

어떤 nginx 버전을 사용하고 있습니까? ipv6only=on더 이상 옵션 이 필요하지 않을 수도 있고 반대로 문제가 발생할 수도 있습니다. 내 서버 블록 에이 기능이 있으며 정상적으로 실행됩니다.

listen 80;
listen [::]:80;

서로 충돌 할 수있는 게시하지 않은 다른 서버 블록이 있습니까?


설명 : 현재 (1.13) nginx 문서를 읽겠습니다 .

ipv6only=on|off
이 매개 변수 (0.7.42)는 IPV6_V6ONLY소켓 옵션을 통해 와일드 카드 주소에서 수신 대기하는 IPv6 소켓이 [::] IPv6 연결 만 허용하는지 또는 IPv6 및 IPv4 연결을 모두 허용 하는지 판별 합니다. 이 매개 변수는 기본적으로 켜져 있습니다. 시작시 한 번만 설정할 수 있습니다.

이 매개 변수는 기본적으로 설정되어 있으므로 사용하지 않아야합니다ipv6only=on. 그것은 잘하지 않으며 잠재적으로 문제를 일으킬 수 있습니다 (다음 요점 참조).

그것은 번만 설정할 수 있습니다 당신이 한 번 이상이있는 경우 있음을 의미 어디서나 (예 : 다른 서버 블록으로) 구성에서,이 오류가 발생합니다nginx: [emerg] duplicate listen options for [::]:80.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.