Voici la config Nginx que j'utilise avec Transmission :
server {
listen 80;
server_name torrent.domain.tld;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name torrent.domain.tld;
access_log /var/log/nginx/transmission-access.log;
error_log /var/log/nginx/transmission-error.log;
## SSL settings
ssl_certificate /etc/nginx/ssl/xxxxx.crt;
ssl_certificate_key /etc/nginx/ssl/xxxxx.key;
ssl_protocols TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4";
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ecdh_curve secp521r1;
add_header Strict-Transport-Security max-age=31536000;
add_header X-Frame-Options DENY;
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/passwd;
location / {
proxy_http_version 1.1;
proxy_read_timeout 300;
proxy_pass_header X-Transmission-Session-Id;
proxy_set_header Host $host;
proxy_set_header Origin http://$host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_pass http://127.0.0.1:9091/transmission/web/;
}
location /rpc {
proxy_pass http://127.0.0.1:9091/transmission/rpc;
}
location /upload {
proxy_pass http://127.0.0.1:9091/transmission/upload;
}
}
Bien sûr le support d'HTTPS n'est absolument pas obligatoire. Il ne faut pas oublier de modifier le fichier de config pour exiger la connexion à Transmission uniquement via Nginx. Donc la connexion de base est remplacée par une authentification avec le protocole HTTP :
"rpc-authentication-required": false,
"rpc-bind-address": "127.0.0.1",
"rpc-enabled": true,
"rpc-password": "",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": true,
Et pour ceux qui sont uniquement sur des trackers privés, je conseille de désactiver PEX et DHT pour éviter de partager avec des personnes extérieures au tracker (ratio non pris en compte) :
"dht-enabled": false,
"pex-enabled": false,
"lpd-enabled": false,