Не могу использовать nginx в качестве прокси-сервера

Вот мой конфиг nginx

server {
    listen 80;
    server_name _;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://flask:8001;
    }

    location /socket.io {

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass http://flask:8001/socket.io;
    }
}

для приложения на основе этого кода

В результате я не могу подключиться к веб-сокету со своей клиентской страницы с помощью кода

var socket = io.connect(location.protocol + '//' + document.domain + ':' + (location.port || 80) + namespace)

Когда я пытаюсь использовать include proxy_params; строка в конфигурации nginx я получаю 2018/03/06 19:52:06 [emerg] 1#1: open() "/etc/nginx/proxy_params" не удалось (2: нет такого файла или каталога) в /etc/nginx/conf.d/default.conf:6

Где я не прав и как разрешить nginx получать соединения с веб-сокетами?

1 ответ

Это сработало для меня в коте. должен работать с другими веб-приложениями, если вы измените root, error_log, а также proxy_pass и настроить свои собственные тайм-ауты.

server {
    listen       80;
    listen       443 ssl;
    server_name  x.y.com;
    root         /opt/tomcat/webapps/;

    error_log    /var/logs/nginx/x.y.com.log debug;

    ssl_certificate         /root/program/ssl/certificate.pem;
    ssl_certificate_key     /root/program/ssl/certificate.key;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Connection "";
        proxy_connect_timeout  4000s;
        proxy_read_timeout     4000s;
        #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
        proxy_pass http://127.0.0.1:8080/;
    }

Также добавил это в мою конфигурацию http

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''  close;
}
Другие вопросы по тегам