nginx : 포트 8090을 바인딩 할 권한이 없지만 80 및 8080에 바인딩 됨


37

이상한 권한 관련 동작으로 어려움을 겪고 있습니다. 포트 8080을 수신하도록 nginx를 구성하면 모든 것이 예상대로 작동하지만 다른 포트를 사용하면 다음과 같은 결과가 나타납니다.

2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied)

...에서 /var/log/nginx/error.log

어디에서 볼지 실마리가 없으므로 구성의 어떤 부분이 흥미로울 지 모르겠습니다.

nginx.conf에서 nginx는 nginx로 실행되도록 구성되어 있습니다.

user  nginx;

또한 사용자 nginx가 다른 그룹 'git'에 있습니다.

site-config에서 다음과 같이 들으려고했습니다.

server {
    listen 8090; #does not work
    #listen 8080; #works
    #listen 9090; #does not work
    #listen 9090 default; #does not work neighter
    #listen 80; #works!
    server_name <some IP>;
    ...
}

포트 443을 제공하는 리스너가 하나 더 있습니다.

SimpleHTTPServer루트가 아닌 포트 8090 등의 다른 서비스를 시작하면 모든 것이 잘 작동합니다.

$ python -m SimpleHTTPServer 8090
Serving HTTP on 0.0.0.0 port 8090 ...
localhost.localdomain - - [10/Jan/2014 09:34:19] "GET / HTTP/1.1" 200 -

일반적으로 권한이 거부 된 이유는 무엇입니까?

시스템은 페도라 18 NGnix는 스톡 페도라 1.2.9입니다


먼저 지원되는 Fedora 버전으로 업데이트해야합니다. 둘째, 다시 시도하십시오. 여전히 실패하면를 확인하십시오 /var/log/audit/audit.log.
Michael Hampton

2
이것은별로 도움이되지 않습니다. Fedora 18 여전히 지원되며 Linux 권한 시스템이 아니더라도 그 이후로 완전히 변경되지 않았습니다.
frans

예 ... 또 다른 사흘 동안.
Michael Hampton

답변:


51

이것은 아마도 SELinux와 관련이있을 것입니다

semanage port -l | grep http_port_t
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

위의 출력에서 ​​볼 수 있듯이 SELinux의 시행 모드에서 http는 나열된 포트에만 바인딩 할 수 있습니다. 해결책은 바인딩하려는 포트를 목록에 추가하는 것입니다.

semanage port -a -t http_port_t  -p tcp 8090

포트 8090을 목록에 추가합니다.


1
그게 다야, 고마워! 그러나 왜 그렇게 적은 정보가 있습니까? 다른 사람들도 SELinux와 함께 Fedora를 사용하는 것 같습니다.
frans

1
@frans : 많은 정보가 있습니다. 정보를 알지 못하거나 정보를 액세스하고 사용하는 방법을 모릅니다. SELiux를 적용 또는 허용 모드로 설정 한 경우 모든 거부는 /var/log/audit.log에 기록됩니다. 정보 및 SELinux 정책을 필터링, 이해 및 관리 할 수있는 도구가 있습니다. fedora seliux 페이지 와 ausearch, audit2why, audit2allow에 대한 맨 페이지를 살펴보십시오.
user9517은 GoFundMonica을 지원합니다.

당신이 얻을 경우 semanage: command not found, 당신은 함께 설치할 수 있습니다 yum install policycoreutils-python.
mwfearnley

8080은 http_port_t에 나열되지 않지만 여전히 작동합니다.
MaxiWheat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.