Assuming that transmission is configured to listen on 127.0.0.1 and port 9091, the reverse proxy configuration for transmission is the following:
location /transmission {
proxy_pass http://127.0.0.1:9091;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass_header X-Transmission-Session-Id;
}
where the /transmission URL will redirect to the transmission daemon web interface. Note that passing X-Transmission-Session-Id is the most essential part of the reverse proxy configuration.
Bazarr is a subtitle service and the nginx reverse proxy configuration is the following:
location /bazarr/ {
proxy_pass http://127.0.0.1:6767/bazarr/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}
assuming that bazarr runs on port 6767 and listens on 127.0.0.1 for connections.
All these services can be configured using the following straight-forward template:
location / {
# Enable either one of these for each location stanza
# Plex
proxy_pass http://127.0.0.1:32400/;
# Jellyfin
proxy_pass http://127.0.0.1:8096;
# Sonarr
proxy_pass http://127.0.0.1:8989;
# Radarr
proxy_pass http://127.0.0.1:7878;
# Lidarr
proxy_pass http://127.0.0.1:8686;
# Jackett
proxy_pass http://127.0.0.1:9117;
# Mylarr
proxy_pass http://127.0.0.1:8090;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_buffering off;
}
The location stanza must be duplicated for each service in part and then one of each proxy_pass directives corresponding to the service must be enabled.
Assuming that nut is installed along with the corresponding CGI package (nut-cgi on Debian), the following configuration will enable a virtual host named nut.lan that will grant access to the nut CGI script:
server {
listen 80;
server_name nut.lan;
location / {
alias /usr/share/nut/www/;
try_files $uri $uri/ /index.html;
}
location /cgi-bin/ {
gzip off;
root /usr/lib;
include fastcgi_params;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}