Open xiongvalerio opened 6 months ago
A reverse proxy is a proxy for another web server, in this case the WebUI. Setting up Nginx reverse proxy makes it easy to enable HTTPS protocol. Install Nginx on Ubuntu 18.04.
sudo apt install nginx
Start Nginx.
sudo systemctl start nginx
Then create a Nginx server block file for WebUI.
sudo nano /etc/nginx/conf.d/qbittorrent-webui.conf
Copy and paste the following texts into the file. Replace the red-colored text with your own domain name and the IP address of your Ubuntu server. You should also set the A record for your domain name. If you don’t have a domain name yet, then I recommend buying domain name from Namecheap because their price is lower than GoDaddy and they give you whois privacy protection free of charge.
server {
listen 80;
server_name name.your-domain.com;
access_log /var/log/nginx/name.your-domain.com.access;
error_log /var/log/nginx/name.your-domain.com.error;
location / {
proxy_pass http://your-server-ip:8080/;
proxy_set_header X-Forwarded-Host $server_name:$server_port;
proxy_hide_header Referer;
proxy_hide_header Origin;
proxy_set_header Referer '';
proxy_set_header Origin '';
add_header X-Frame-Options "SAMEORIGIN";
}
}
Save and close the file. Then test Nginx configuration.
sudo nginx -t
If the test is successful, reload Nginx
sudo systemctl reload nginx
Now in your router, forward HTTP request (port 80) to the IP address of your Ubuntu server. After that, you can access WebUI via your domain name (name.your-domain.com
).
Note: If your ISP gives you a NAT-ed IP address, i.e. not a public IP address, then port forwarding won’t work. Instead, you need to use PageKite to expose local web server to the Internet.
To secure the Web UI, you can install a free TLS certificate issued by Let’s Encrypt. First you need to install the Let’s Encrypt client (certbot) on Ubuntu 18.04 server.
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt install certbot python3-certbot-nginx
Python3-certbot-nginx
is the Certbot Nginx plugin. After they are installed, run the following command to automatically obtain and install Let’s Encrypt certificate.
sudo certbot --nginx --redirect --agree-tos --hsts --staple-ocsp --email your-email-address -d name.your-domain.com
Once that’s done, refresh the Web UI. It will be automatically redirected to HTTPS connection.
how to run this,on the vps and connect a domain?