nginx - SSL 지원 사이트의 Apache 및 Socket.io용 역방향 프록시

nginx - SSL 지원 사이트의 Apache 및 Socket.io용 역방향 프록시

SSL보안 웹 애플리케이션은 Apache 서버(PHP)와 NodeJS(Socket.io)로 구성되어 있습니다. 다양한 네트워크에서 포트가 차단되는 문제를 극복하기 위해 nginx내가 설정한 각 포트로 요청을 리디렉션하는 데 사용하기로 결정했습니다. 그러나 나는 모든 것을 올바른 방식으로 구성하는 데 어려움을 겪었습니다.

편집됨:

port 443nginx를 사용하여 모든 요청을 수신 하고 PHP/NodeJS 서비스를 가리키고 싶습니다 . 파일 구성은 다음과 같습니다 /etc/nginx/sites-available/default.

server {

    listen 443;
    ssl on;
    ssl_certificate    /var/www/project/mynode/ssl.crt;
    ssl_certificate_key  /var/www/project/mynode/private.key;

    server_name domain.com ;
    access_log /var/log/nginx/nginx.vhost.access.log;
    error_log /var/log/nginx/nginx.vhost.error.log;

    root /var/www/;

    location /project/{
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://127.0.0.1:442/project/;
    }

    location /backend/{
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://127.0.0.1:8080/project/angular/backend/;
    }

    location /connect/{
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://127.0.0.1:9000/;
    }
}

그리고 다음과 같은 방법으로 소켓에 연결하려고 합니다.

io.connect("https://www.domain.com/connect");

하지만 소켓은 연결되지 않습니다. Apache의 서비스는 잘 작동합니다.

내가 직면한 오류는 다음과 같습니다.

https://www.domain.com/socket.io/?EIO=3&transport=polling&t=1434534878619-0 404 (Not Found)

그러나 포트를 언급하면 ​​제대로 작동합니다. 이에 대한 작업 코드는 다음과 같습니다.

io.connect("https://www.domain.com:9000");

ports.conf문서와 가이드에 따라 및 파일을 구성하고 apache2/sites-available/default해석할 수 있는 모든 것을 시도했지만 여전히 소켓을 연결하는 데 실패했습니다.

관련 정보