nginx 감청 포트 와 역방향 프 록 시 포트 의 권한 문제
nginx 감청 포트
현재 어떤 제어 포트 가 실행 가능 한 지 확인 하려 면:
# semanage port -l | grep '^http_port_t'
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
여기 에는 80 포트 를 포함 한 8 개의 포트 번호 가 표시 되 어 있다.nginx 는 기본적으로 80 포트 에서 감청 하기 때문에 정상적으로 작 동 합 니 다.
# service nginx start
우 리 는 다음 에 nginx 가 8888 포트 와 같은 다른 포트 에서 감청 할 수 있 는 지 시험 해 볼 수 있다.이 를 위해 / etc / nginx / conf. d / test. conf 파일 을 새로 추가 합 니 다:
# /etc/nginx/conf.d/test.conf
server {
listen 8888;
server_name localhost;
}
이 파일 을 새로 추가 하지 않 고 / etc / nginx / conf. d / default. conf 파일 을 직접 수정 할 수도 있 습 니 다.
완료 후 nginx 설정 다시 불 러 오기:
# nginx -s reload
이 명령 이 실 행 됐 지만 실제 8888 포트 는 감청 상태 에 있 지 않 습 니 다.
# netstat -anp | grep 8888
위의 netstat 명령 은 출력 이 없 으 며 8888 포트 가 감청 상태 에 있 지 않 음 을 나타 낸다.더 나 아가 회계 감사 일 지 를 살 펴 보 자.
vi /var/log/audit/audit.log
파일 끝 에서 다음 두 줄 을 발견 합 니 다.
1 type=AVC msg=audit(1452146884.454:2430): avc: denied { name_bind } for pid=1268 comm="nginx" src=8888 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
2 type=SYSCALL msg=audit(1452146884.454:2430): arch=c000003e syscall=49 success=no exit=-13 a0=b a1=1b5cc60 a2=10 a3=7ffdaf0be83c items=0 ppid=1 pid=1268 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)
이곳 의 상세 한 의 미 는 저도 잘 모 르 겠 지만 분명 한 것 은 nginx 가 8888 포트 에서 감청 할 수 있 는 권한 이 없다 는 것 입 니 다.만약 nginx 가 8888 포트 에서 감청 하 기 를 원한 다 면 8888 포트 번 호 를 제어 포트 로 등록 할 수 있 습 니 다.등록 하기 전에 8888 포트 가 등록 되 었 는 지 확인 하 십시오.
semanage port -l | grep 8888
출력 이 있 으 면 8888 포트 가 등록 되 었 음 을 표시 합 니 다. 이 때 다른 포트 로 바 꾸 십시오.
http 8888 포트 번 호 를 등록 하려 면 실행 하 십시오:
semanage port -a -t http_port_t -p tcp 8888
좋 은 습관 으로서 우 리 는 제 어 된 포트 목록 을 다시 한 번 검사 해서 방금 등 록 된 포트 번호 가 있 는 지 확인 해 야 한다.
semanage port -l | grep '^http_port_t'
마지막 으로 nginx 설정 을 다시 불 러 옵 니 다:
# nginx -s reload
이때 8888 포트 는 감청 상태 에 있어 야 합 니 다.
# netstat -anp | grep 8888
nginx 역방향 에이전트 포트
만약 당신 이 nginx 에 의 해 역방향 대 리 를 받 게 하려 면, 역방향 에이전트 의 포트 번호 도 제 어 된 포트 여야 합 니 다.
기타 설명
왠 지 모 르 게 nginx 를 서비스 로 시작 할 때 만 포트 는 Linux 보안 에 의 해 제 어 됩 니 다. nginx 를 직접 실행 하면 이 제 어 를 받 지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.