Nginx、Deluge,将端口更改为默认端口并使用子域

Nginx、Deluge,将端口更改为默认端口并使用子域

我有这个example.com域名。
我使用 Nginx 安装了 Wordpress,一切正常example.com
我安装了 Deluge、Deluge WebUI,默认端口为 8112,example.com:8112Deluge Web UI 也一切正常。
我没有在 Nginx 中为 Deluge 安装任何 Python 程序,Deluge 有自己的 Web 服务器(我认为)。
但是我希望能够从 中使用 Deluge WebUI subdomain.example.com,而不是 (example.com:8112subdomain.example.com:8112)。
我不太在意其他解决方案是否也能继续工作,我宁愿不这样做,但对我来说真正重要的是提供一个subdomain.example.com
默认工作的 Deluge Web UI,即使 Nginx 停止,subdomain.example.com:8112和也能example.com:8112正常工作并将我正确地重定向到 Deluge WebUI。
但是我无法将使用默认端口(80/443)的 Nginx 代理到在 8112 中监听的 Deluge。
我尝试了许多使用 Nginx 的解决方案,我甚至设法重定向到 Deluge 网页,但我看到的只是一个空白页(虽然用开发工具检查它,我发现它背后有 deluge 代码,里面的 url,如 /somewhere/something.css 也在工作)。这甚至不是权限问题,因为(在制作备份以正确恢复它们之后)我甚至尝试在 deluge web 目录中使用 -R 给出 777。和之前一样,空白页实际上有一些 javascript 错误,很可能是阻塞,但它们在端口 8112 上运行,所以可能是某些 javascript 没有重定向到正确的端口?
这是我尝试过的 Nginx 配置之一。我尝试了很多,我无法列出我尝试过的所有可能性。
server { listen 80; server_name subdomain.example.com; ## redirect http to https ## rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443; server_name subdomain.example.com; root /usr/share/pyshared/deluge/ui/web; index index.html; location / { proxy_pass httTHIS IS INSIDE A CODE WTH ps://localhost:8112; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_header Set-Cookie; proxy_pass_header P3P; } location = /favicon.ico { log_not_found off; access_log off; } location ~* .(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } access_log /var/log/nginx/nginx.example.com.access.log; error_log /var/log/nginx/nginx.example.com.error.log; }
大胆的是我编辑服务器特定信息的地方

答案1

看来我已经能够让它工作了,按照以下步骤:

安装软件包:deluge deluge-webui deluged

然后开始deluge-web

# deluge-web或者# deluge-web --fork让它在后台运行

NGinx然后像这样设置:

server {
   listen       80;
   server_name subdomain.example.com;

  location / {
     proxy_pass http://192.168.0.47:8112; # IP Address of your Server 
  }
}

对于 https (端口 443),首先我设置deluge为使用 https :

  • 我已经创建了一个自签名证书按照此处的说明操作(第一至第四步)
  • 然后,按照此,我 复制server.crtserver.key$HOME/.config/deluge/ssl
  • 打开$HOME/.config/web.conf并设置如下:

    "pkey": "ssl/server.key",
    "cert": "ssl/server.crt",
    "https": true,
    
  • 然后重启deluge-web

  • 最后设置NGinx

    server {
       listen       443;
       server_name subdomain.example.com;
       ssl on;
       ssl_certificate /etc/nginx/ssl/server.crt;
       ssl_certificate_key /etc/nginx/ssl/server.key;
    
       location / {
         proxy_pass https://192.168.0.47:8112; # IP Address of your Server
       }
    }
    

请注意,似乎不能deluge同时使用httphttps:您必须选择其中一个。

相关内容