У меня есть SSL-хост на моем сервере apache со следующим в VirtualHost:
<VirtualHost 217.147.92.100:443>
ServerName server.com
ServerAdmin email@email.com
DocumentRoot /somepath/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/something/fullchain.pem
SSLCertificateKeyFile /etc/something/privkey.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
SSLProxyEngine on
ProxyPass "/rtapi/" "ws://localhost:38120/"
ProxyPassReverse "/rtapi/" "ws://localhost:38120/"
<Directory /somepath/>
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
До сих пор хорошо? Обратите внимание на прокси-пароль для папки / rtapi /. Старый добрый apache, как обычно, творит чудеса.
Теперь о нашем несчастном кемпере nginx, от которого я прошу гораздо меньше:
server {
listen 45108 ssl;
ssl on;
ssl_certificate /etc/something/fullchain.pem;
ssl_certificate_key /etc/something/privkey.pem;
location / {
proxy_pass http://localhost:38120;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Все, что я ищу от nginx, - это установить оболочку SSL в моем сервисе websocket и проксировать ее.
Я получил:
2017/08/24 19:55:01 [error] 25018#0: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 71.192.225.239, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:38120/", host: "api.speedracing.tv:45108"
Что кажется полезным. Ой! Мой маленький сервер websocket не должен отвечать ... но подождите секунду. Конечно, сервер должен быть запущен, потому что он принимает прокси-запросы от apache. Ясно, что логический вывод состоит в том, что nginx - это соединение, но я действительно не понимаю, почему и как.