Nginx Config для SSL PHP-сайт и веб-сокеты WSS? - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь настроить соединение через веб-сокет (wss).Мой домен использует ssl (certbot) и работает на Nginx.Я не уверен, как настроить мой /etc/nginx/sites-available/example.com файл.

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
...
}

Я добавил следующее в свой блок конфигурации:

location /websocket {
    proxy_pass         https://example.com;
    proxy_http_version 1.1;
    proxy_set_header   Upgrade $http_upgrade;
    proxy_set_header   Connection "upgrade";
    proxy_set_header   Host $host;
}

При подключении через: wss://example.com/, я получаюошибка

WebSocket connection to 'wss://example.com/' failed: 
Error during WebSocket handshake: Unexpected response code: 200

Большинство примеров используют фреймворк nodejs для обслуживания своих сайтов, но я использую php.Существуют ли какие-либо руководства, которые могут мне помочь, или у кого-нибудь есть идея, как настроить мой конфигурационный файл?Спасибо!

1 Ответ

0 голосов
/ 29 сентября 2018

я нахожу proxy_pass https://example.com; в вашей конфигурации nginx, однако https://example.com - это http-сервер вместо websocket-сервера, поэтому вы получили код ответа 200

, это пример

location ~ ^/websocket/(.*$) {
    tcp_nodelay on;
    keepalive_timeout  1200s 1200s;
    keepalive_requests 100000;
    proxy_pass http://127.0.0.1:51966/$1;
    proxy_read_timeout 1200s;
    proxy_send_timeout 1200s;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

51966 - это порт, который прослушивает websocket

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...