Nginx는 포트에서 수신 대기하며 포트 80으로 설정된 경우에만 응답합니다 http://192.168.18.42:81/ Connecting to 192.168.18.42:81… connected. HTTP request sent, awaiting

운영체제 : Funtoo. NGINX를 포트 81에 바인딩했으며 (전환을 쉽게하기 위해 짧은 시간 동안 Apache 서버와 함께 실행하고 싶습니다) 포트에서 수신 대기합니다 (wget을 사용하여 다른 포트를 가리키면 “연결이 거부되었습니다”, 그러나 포트 81을 사용하면 “connected”가 표시되지만 HTML 응답을 전혀 제공하지 않습니다!

포트에서 wget을 실행할 때 localhost에서 다음을 얻습니다.

# 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;
    }
}



답변

다음 서버 블록을 시도하십시오.

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 출력 :

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


답변

큰 문제가 나옵니까? Nginx는 worker_processes를 0으로 설정했습니다. auto나는 nginx.conf의 맨 위에 줄 설정을 추가 했으며 모두 세상과 잘 어울 렸습니다!

시간과 인내심에 감사드립니다.


답변