Назад | Перейти на главную страницу

NGINX Proxy_Pass к серверу websocket на сервере Plesk

Я пытаюсь подключить клиент websocket к моему серверу с помощью ssl-соединения. Я хочу достичь его с помощью www.myurl.com/socket/ (поддомены также могут быть вариантом), а сервер websocket работает на порту 7777. Поскольку на сервере работает Plesk, мне нужно выполнить настройку в интерфейсе Plesk.

Я только что попытался разместить здесь свою конфигурацию: Apache & nginx Settings for myurl | Additional nginx directives

Моя конфигурация выглядит следующим образом:

location /socket/ {
    proxy_pass "http://127.0.0.1:7777";
    proxy_read_timeout     60;
    proxy_connect_timeout  60;
    proxy_redirect         off;
    # Allow the use of websockets
    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;

}

Я не могу установить соединение. Он работал без des proxy_pass на незащищенном соединении.

Я неправильно разместил конфигурацию или намекнул, в чем может быть проблема? Также мне помогло бы наличие полезных методов или инструментов для анализа того, где находится ошибка.

Гарантировать, что

  1. Ваш DNS указывает на ваш IP-адрес NGINX
  2. Ваш серверный блок настроен под /etc/nginx/sites-available/myurl.com
  3. У вас есть программная ссылка для перехода на сайт: ln -s /etc/nginx/sites-available/myurl.com /etc/nginx/sites-enabled
  4. Проверьте конфигурацию nginx с помощью nginx -t
  5. При внесении изменений перезапустите службу nginx service nginx restart

В вашей конфигурации есть множество опций, которые могут вам не понадобиться. Я предлагаю упростить его, чтобы увидеть, работает ли основное.

    server { 
          server_name myurl.com;
                  location / {
                           proxy_pass http://127.0.0.1:7777;
                  }
    }

Попробуй получить доступ http://myurl.com/socket Если это не сработает, попробуйте добавить «www» или «/ socket» в конфигурацию сервера. Только как только вы начнете работать с http, затем добавьте параметры сертификата SSL.

server {
        server_name myurl.com;
        location /socket {
                proxy_pass http://127.0.0.1:7777/socket;
        }
        location / {
                proxy_pass http://127.0.0.1:7777;
        }
        listen [::]:443 ssl;
        listen 443 ssl;
        ssl_certificate /etc/ssl/ssl.crt;
        ssl_certificate_key /etc/ssl/ssl.key;
}
server {
    if ($host = myurl.com) {
        return 301 https://$host/;
    }
        listen 80;
        listen [::]:80;

        server_name myurl.com;
    return 404;
}