[server] nginx가 외부 IP 주소로 요청을 제공하지 않음

포트 81에서 nginx를 실행하고 있습니다. telnet을 사용할 수 telnet 127.0.0.1 81있으며 모든 것이 정상입니다.

그러나 내 Mac (외부 IP 주소)에서 내 컴퓨터로 텔넷하려고하면이 오류가 발생합니다.

telnet: connect to address 109.123.x.x: Connection refused
telnet: Unable to connect to remote host

내 / etc / nginx / sites-available / default 파일은 다음과 같습니다.

server {
        listen   81; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from http://localhost/
        server_name 109.123.x.x;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
        }
        ...

포트 81을 허용하기 위해 Ubuntu Firewall (ufw)을 열었습니다.

나는 지금 완전히 붙어있다.

누구든지 아이디어가 있습니까?



답변

서버 이름이

server_name 109.123.x.x;

이건 잘못이야 !!!!!

숫자가 아닌 이름을 입력하십시오.

server_name mywebsite.home;

mywebsite.home을 nginx 서버의 IP로 호스트 파일 (/ etc / hosts), 즉 Mac과 같은 형식으로

109.123.X.X mywebsite.home

XX는 숫자로 대체됩니다.

또는

모든 요청을 처리하려면 간단히

server_name _;

그래도 문제가 해결되지 않으면 아래를 확인하십시오.

방화벽, 즉 iptables가 트래픽을 차단하거나 nginx가 localhost, 즉 127.0.0.1에서만 청취하도록합니다.

방화벽 비활성화

sudo ufw disable

포트 81의 청취 주소 확인

sudo netstat -tulpn


답변

몇 달 전에 우분투 시스템에서 ngnix를 실행하고 다른 Windows 시스템에서 서비스에 액세스하려고 할 때 동일한 문제가 있습니다. 하지만
언젠가 우분투 시스템의 방화벽을 해제하여 이것을 극복하면 http://127.0.0.1/8000 과 같은 포트 서비스에 액세스 할 수 없습니다 .

방화벽을 끄는 명령 :

    sudo ufw disable

방화벽 상태를 먼저 확인할 수도 있습니다.

    sudo ufw status


답변

도움이 된 팁 : A.) 포트 전달 B.) 공용 IP를 server_name으로 설정이 단계는 특히 팁 A에 도움이되었습니다.)


답변