nginx обратный прокси на https для socketio в другом порту, в то время как 443 используется другим приложением - PullRequest
0 голосов
/ 26 марта 2020

У меня есть приложение nodejs, которое обслуживает http-сервер на локальном хосте: 8180 и socketio (websocket) на 8181, но моя проблема заключается в том, как их защитить с помощью https.

Я использую nginx, чтобы обратный прокси-сервер для https на HTTP-сервере работал хорошо, но просто не знаю, как он должен работать на веб-сокете, если я подключу слушаю 8181 ssl и конечная точка веб-сокета будет https://demo : 8181 ? Кстати, я попробовал это, но он не может перезапустить мой nginx сервер

server {

    listen 443 ssl;
    server_name api.demo.com;
    ssl_certificate /etc/nginx/ssl/public.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;
    location / {
        proxy_pass http://localhost:8180;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

   }
}

server {

    listen 443 ssl;
    server_name api.demo.com;
    ssl_certificate /etc/nginx/ssl/public.crt;
    ssl_certificate_key /etc/nginx/ssl/private.key;
    location / {
        proxy_pass http://localhost:8181;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

   }
}
...