Nginx는 포트에서 수신 대기하고 포트 80으로 설정된 경우에만 응답합니다.

Nginx는 포트에서 수신 대기하고 포트 80으로 설정된 경우에만 응답합니다.

운영 체제: Funtoo. NGINX가 포트 81에 바인딩되어 있고(쉬운 전환을 위해 짧은 시간 동안 Apache 서버에서 실행하고 싶습니다) 해당 포트에서 수신 대기합니다(wget을 사용하여 다른 포트를 가리키면 "연결이 거부되었습니다"라는 메시지가 표시되지만 포트 81을 사용하면 "연결됨"이 표시되지만 어떤 종류의 HTML 응답도 제공하지 않습니다!

localhost의 포트에서 wget을 실행하면 다음과 같은 결과가 나타납니다.

# wget localhost:81
-2014-04-16 23:56:45- http://localhost:81/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:81... connected.
HTTP request sent, awaiting response...

다른 컴퓨터에서...

$ wget 192.168.18.42:81
-2014-04-16 23:57:19- http://192.168.18.42:81/
Connecting to 192.168.18.42:81... connected.
HTTP request sent, awaiting response...

그 후에는 아무 일도 일어나지 않았습니다. 파일이 존재하며 이는 일반적인 Funtoo nginx.conf입니다.

업데이트: 포트 80에서 수신 대기하도록 할 수 있지만 어떤 포트에서도 작동하도록 할 수 없기 때문에 여전히 버그가 있습니다...

netstat -aWn | grep 81 | grep LISTEN
tcp 60 0 0.0.0.0:81 0.0.0.0:* LISTEN

편집: 구성 파일:

user nginx nginx;
worker_rlimit_nofile 6400;

error_log /var/log/nginx/error_log info;

events {
    worker_connections 1024;
    use epoll;
}

http {
    include /etc/nginx/mime.types;

    # This causes files with an unknown MIME type to trigger a download action in the browser:
    default_type application/octet-stream;

    log_format main
        '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $bytes_sent '
        '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

    client_max_body_size 64m;

    # Don't follow symlink if the symlink's owner is not the target owner.

    disable_symlinks if_not_owner;
    server_tokens off;
    ignore_invalid_headers on;

    gzip off;
    gzip_vary on;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/x-js image/x-icon image/bmp;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    index index.html;
    include /etc/nginx/sites-enabled/*;
}

서버 블록:

server {
    listen  *:81;
    root    /usr/share/nginx/html;
    location / {
        index   index.html;
    }
}

답변1

다음 서버 블록을 사용해 보십시오.

server {
   listen       81 default_server;
    server_name _;    
    root    /usr/share/nginx/html;
    location / {
        index   index.html;
    }
}

밑줄은 _와일드카드이므로 *:81예상한 대로 작동하지 않을 수 있습니다. 포트 번호만 사용하세요.

그런 다음 다음 명령을 사용하여 설정을 테스트하십시오 nginx -t.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx를 다시 시작합니다:

service nginx restart

netstat를 사용하여 다음을 테스트합니다.

root@gitlab:~# netstat -napl | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7903/nginx      
tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      2662/unicorn.

고쳐 쓰다

테스트 시스템에 nginx가 설치되어 있습니다. 스톡 nginx.conf파일을 살펴보고 한 줄을 다음으로 변경하여 /etc/nginx/sites-enabled/default포트 81에서 파일을 검색할 수 있었습니다.

cat /etc/nginx/sites-enabled/default
server {

    listen   81;
    server_name localhost;
    root /usr/share/nginx/www;
    index index.html index.htm;


    location / {
        try_files $uri $uri/ /index.html;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }

}

네트워크 통계 출력:

netstat -napl | grep 81
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      3432/nginx

다운로드 파일:

$ wget localhost:81

문서 내용:

$ cat index.html
<html>
<head>
<title>Welcome to nginx!</title>
</head>
<body bgcolor="white" text="black">
<center><h1>Welcome to nginx!</h1></center>
</body>
</html>

업데이트 2

테스트 포트:

 root@gitlab:# nc -vz localhost 81
 Connection to localhost 81 port [tcp/*] succeeded!
 root@gitlab:# nc -vz localhost 443
 nc: connect to localhost port 443 (tcp) failed: Connection refused

답변2

알고 보니 큰 문제였나요? Nginx는 작업자_프로세스를 0으로 설정했습니다. nginx.conf 상단에 설정 줄을 추가했는데 auto모든 것이 정상입니다!

시간을 내어 기다려주신 모든 분들께 감사드립니다.

답변3

구성 파일 /etc/nginx/nginx.conf에 websocket을 추가하여 이 문제를 해결했습니다. 다음에서 역방향 프록시의 전체 구성 파일을 볼 수 있습니다.https://help.teradici.com/s/article/1050

마법의 부분은 다음을 추가하고 있습니다:

upstream websocket {
    server <DESTINATION_IP>:<DEST_PORT>;
}

관련 정보