
방금 Mac OS X 10.11(El Capitan)에 Homebrew의 Nginx를 설정했습니다.
Ngnix 구성을 다음과 같이 설정하면:
listen 127.0.0.1:8080;
listen 127.0.0.1:81;
listen 127.0.0.1:75;
작동할 거예요. 하지만 내가 이것을 거기에 넣으면 :
listen 127.0.0.1:80;
그렇지 않습니다. 나가면 연결이 거부될 거예요http://127.0.0.1
ps
Nginx가 실행 중이라고 말하지만 그렇지 않다고 말합니다 netstat -a | grep nginx
.netstat -a | grep 80
물론 이것을 루트로 실행합니다(다음에서 실행하는 데 꼭 필요한 것은 아닙니다).:8080
그리고 Mac OS X 방화벽이 실행되고 있지 않습니다.
오류 로그에 더 이상 이 내용이 표시되지 않습니다.
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
어떤 아이디어가 있나요? 나는 이것을 실행하여 작업할 수 있습니다 8080
(신기하게도 에서 실행하면 포트가 8080
열리고 80
로 리디렉션됩니다 80
).
답변1
OSX를 재부팅했습니다. 일했다. 리눅스에서는 다를 것이라고 생각합니다.
답변2
오류는 다음과 같습니다.
2015/10/10 17:16:19 [emerg] 23906#0: bind() to 0.0.0.0:80 failed (48: Address already in use)
"이미 사용 중인 주소"가 모든 것을 말해줍니다. 시스템의 다른 부분이 포트 80을 사용하고 있습니다. 웹 공유가 활성화되어 있습니까? 아니면 Apache가 설치되어 실행되고 있습니까? 이를 확인할 수 있는 방법은 lsof
시스템에서 다음과 같이 실행하는 것입니다.
sudo lsof -i -P | grep -i "80"
그러면 어떤 프로세스가 포트 80을 사용하고 있는지 엄격하게 표시됩니다. Mac OS X 시스템에서 "수신"하도록 설정된 다른 포트가 무엇인지 알고 싶다면 다음 명령을 실행하세요.
sudo lsof -i -P
포트 80이 사용 중인지 확인하려는 경우 다음을 lsof
사용하여 출력을 필터링하지 않고 이 내용을 확인할 수 있는 이 명령 변형을 사용할 수 있습니다 grep
.
sudo lsof -nPL -iTCP:80
답변3
MacOS와 같은 Unix 기반 시스템에서는 슈퍼 유저 권한 없이는 1024 미만의 포트에서 서비스를 실행할 수 없습니다. 하지만 컴퓨터를 재부팅하면 슈퍼 유저로 nginx 서비스가 자동으로 다시 시작되므로 작동합니다.
다음 명령으로 문제를 해결해야 합니다.
sudo brew services restart nginx
답변4
나는 이 문제를 해결했습니다(M1 칩이 장착된 MacBook Air를 사용하고 있습니다).
- httpd 제거(있는 경우)
- 아파치 비활성화링크
- nginx 설치
- 포트를 80으로 변경하세요.
/usr/local/etc/nginx/nginx.conf