1

I have this example.com domain.
I install Wordpress using Nginx, and it's all ok in example.com.
I install Deluge, Deluge WebUI, default port is 8112, and example.com:8112 is all ok again also for Deluge Web UI.
I didn't install anything for Python in Nginx for Deluge, Deluge has it's own web server (I think).
However I want to be able to use Deluge WebUI from subdomain.example.com, instead of (example.com:8112 or subdomain.example.com:8112).
I don't care much if the other solution will keep working as well, I would prefear not to, but what is really important for me is to deliver a working Deluge Web UI at subdomain.example.com
By default, even with Nginx stopped, both subdomain.example.com:8112 and example.com:8112 work and redirect me to Deluge WebUI properly.
However I'm unable to proxy Nginx with default ports (80/443) to Deluge listening in 8112.
I tried many solutions with Nginx, I even managed to redirect to the Deluge Web page, but all I see is a blank page (though inspecting it with dev tool I see that there is the deluge code behind it, and the url inside, like /somewhere/something.css are working as well). It is not even a problem of permission, because (after making a backup copy to restore them properly) I even tried to give 777 with -R in the deluge web directory. The blank page as before actually has some javascript errors, it's likely that that is blocking, but they work on the port 8112, so maybe is some javascript not redirecting to the correct port?
That's one of the Nginx configuration I tried. I tried many, I can't list all the possibilities I tried.
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; }
bold is where I edited server specific informations

2

Seems i have been able to make it works, following these steps :

Install packages : deluge deluge-webui deluged

Then start deluge-web :

# deluge-web or # deluge-web --fork to have it running in background

Then setup NGinx like this :

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

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

For https (port 443), first i've setup deluge to use https :

  • I've create a self-signed certificate following instructions here (step One to Four)
  • Then, following this, i've copied server.crt and server.key in $HOME/.config/deluge/ssl
  • Open $HOME/.config/web.conf and setup like this :

    "pkey": "ssl/server.key",
    "cert": "ssl/server.crt",
    "https": true,
    
  • Then restart deluge-web

  • Finally setup 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
       }
    }
    

Note that it seems you cannot use deluge with both http and https : you have to choose one or another.

|improve this answer|||||
  • There is no need to have deluge work via https. Nginx could connect to deluge via http protocol while client connect to nginx via https. – Alexey Ten Mar 24 '14 at 20:18
  • 1
    @alexeyten Never break the SSL chain ! Here, Nginx and deluge are on the same server, so a man in the middle is difficult. However never do this when your frontend server is not the same as the backend server. So, more generally, keep SSL all over the way, or don't use SSL at all. – krisFR Mar 24 '14 at 20:45
  • I wouldn't be so categorical. If one could listen to traffic inside your server, is doesn't matter if it is encrypted or not, so it's just a waste of resources and time. – Alexey Ten Mar 25 '14 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.