nginx — обратный прокси-сервер для Apache и Socket.io на сайте с включенным SSL

nginx — обратный прокси-сервер для Apache и Socket.io на сайте с включенным SSL

Мое SSLзащищенное веб-приложение состоит из сервера Apache (PHP) и NodeJS (Socket.io). Чтобы преодолеть проблему заблокированных портов в различных сетях, я решил использовать nginxдля перенаправления запросов на соответствующие установленные мной порты. Но мне было трудно настроить все правильно.

Отредактировано:

Я хочу использовать nginx для прослушивания всех запросов port 443и направить их на мой 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в соответствии с документацией и руководствами, перепробовал все, что мог, но мне все еще не удается подключить сокет.

Связанный контент