У меня проблема. Apache прослушивает белый IP-адрес и проксирует все запросы / ssd на nginx, который передает запросы / city-dashboard на другой сервер с помощью веб-сокетов. В конфигурации apache:
ProxyPass /ssd/ http://10.127.32.24
ProxyPassReverse /ssd/ http://10.127.32.24
Конфигурация nginx: на nginx.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
} include /etc/nginx/conf.d/*.conf; в default.conf
location /city-dashboard/stream {
proxy_pass http://10.127.32.24:5000/stream;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
Заголовки запроса:
GET ws://x.x.x.x/ssd/city-dashboard/stream HTTP/1.1
Host: x.x.x.x
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://x.x.x.x
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: 881o9c/z3Q437JFCti3BIw==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Заголовки ответа:
Connection:Upgrade, close
Content-Length:34
Content-Type:text/html; charset=UTF-8
Date:Wed, 19 Aug 2015 16:53:40 GMT
Server:nginx/1.8.0
Upgrade:websocket
Connection: close
Код состояния 400 Bad Request Что я делаю не так? Я думаю, может быть, apache или nginx обрезали заголовки, как сделать, чтобы они этого не делали?
Я пробовал писать так в apache conf:
Header set Connection "Upgrade"
RequestHeader setifempty Connection "Upgrade"
Header set Upgrade "websocket"
RequestHeader setifempty Upgrade "websocket"