我在本地运行一个服务, rstudio-server 。 这项服务可以在我的机器本地IP,端口8787访问。
现在,我想从我的服务器访问这个服务,这个地址:rstudio.example.com(一个条目已经完成)。
我使用Nginx并创build了这个块:
server { listen 80; listen 443 ssl; server_name rstudio.example.com; root /usr/lib64/rstudio-server/www; include /etc/nginx/ssl/rstudio.ssl.conf; location / { # rewrite ^/rstudio/(.*)$ /$1 break; #proxy_pass http://192.168.1.94:8787; proxy_pass http://unix:/run/rstudio-server/rstudio-server.sock; #proxy_redirect http://192.168.1.94:8787/ rstudio.myexample.com; proxy_redirect http://unix:/run/rstudio-server/rstudio-server.sock rstudio.myexample.com; #proxy_http_version 1.1; #proxy_set_header Upgrade $http_upgrade; #proxy_set_header Connection "upgrade"; }
我自愿让我尝试了所有的选项。 没有任何一种解决scheme可以让我连接到example.com上的服务。 我能看到的日志是:
*5 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream
谷歌search这个错误并没有让我find一个明确的答案。
我在Nginx上的代理设置有什么问题? 谢谢你的提示。
尝试这个:
http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; listen 443 ssl; server_name rstudio.example.com; root /usr/lib64/rstudio-server/www; include /etc/nginx/ssl/rstudio.ssl.conf; location / { proxy_pass http://192.168.1.94:8787; proxy_redirect http://192.168.1.94:8787/ $scheme://$host/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 20d; } } }