Git Product home page Git Product logo

Comments (5)

dm-vodopyanov avatar dm-vodopyanov commented on July 30, 2024 1

@ntoporcov in simple terms, reverse proxy is used to access self-hosted services through web. E.g., you have your server which is located far away from you, not in the same local network. It hosts some service on localhost. You want to access this service. Of course, it can be accessed through VPN, but e.g., you want to give the access to this service not only to you (example: Nextcloud) - and in case of using VPN, you provide the access not only to this service, but also to other recourses which you don't want to share with others, e.g., due to security reasons. Other thing: you may not want to use VPN at all to access your service (switching it on and off, waste battery power on enabled VPN). That's where reverse proxy comes in handy. E.g., you have your own website or use some of DDNS services. Using reverse proxy, you can easily map your service which is on address localhost:1234 to website my-server.com/my-service (SERVER.COM/qbt in the config above). Reverse proxy also supports SSL certificates and prohibit http access, to access only through https.

qBittorrent repo has at least two docs regarding NGINX reverse proxy:

Default qBittorrent WebUI works without any issues through reverse proxy. iQbit doesn't. But default WebUI is not optimized at all for smartphones, and it's hard to use its interface on them. Here comes iQbit which can provide excellent UX on smartphones. Supporting reverse proxy, it can be accessed securely through user's website from anywhere with an internet connection.

BTW, that's what ChatGPT answered on the request to provide the list of self-hosted services with reverse proxy support:

There are several self-hosted services that support reverse proxy, allowing you to route traffic to them through a reverse proxy such as NGINX. Some examples include:

  1. Nextcloud: A popular open-source cloud storage solution that allows you to sync files, manage calendars, and more.

  2. Plex: A media server that allows you to stream your movies, TV shows, and music to any device.

  3. GitLab: A web-based Git repository manager that allows you to manage your source code, track issues, and more.

  4. WordPress: A popular content management system that allows you to create and manage websites.

  5. Bitwarden: An open-source password manager that allows you to securely store and access your passwords.

  6. Gitea: A lightweight Git service that allows you to host your own repositories.

  7. Home Assistant: An open-source home automation platform that allows you to automate your home.

  8. Grafana: An open-source analytics and monitoring platform that allows you to visualize and analyze data.

  9. BookStack: An open-source wiki-like platform that allows you to create and manage documentation.

  10. Syncthing: An open-source file synchronization tool that allows you to sync files between devices.

These are just a few examples of self-hosted services with reverse proxy support. Many other self-hosted services also support reverse proxy, and the list is constantly growing as more developers recognize the benefits of this approach.

And that's what it answered on the question "And what about qBittorrent?":

Yes, qBittorrent is a self-hosted BitTorrent client that supports reverse proxy. By default, qBittorrent listens on a specific port, but you can use a reverse proxy such as NGINX to route traffic to qBittorrent through a different port or domain name.

Using a reverse proxy can provide several benefits, such as enabling SSL encryption and allowing you to access qBittorrent remotely. Here's an example NGINX configuration for qBittorrent:

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

    location / {
        proxy_pass http://localhost:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /api {
        proxy_pass http://localhost:8080/api;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

In this configuration, NGINX listens on port 80 and routes traffic to qBittorrent, which is listening on port 8080. The proxy_set_header directives ensure that the correct headers are passed along to qBittorrent, including the original host and IP address of the client.

Note that you may need to adjust the configuration based on your specific setup, such as if you want to enable SSL encryption or use a different domain name. Also, be sure to secure your qBittorrent instance with a strong username and password, and consider using additional security measures such as IP whitelisting.

from iqbit.

dm-vodopyanov avatar dm-vodopyanov commented on July 30, 2024

Could be the same: #38, which is in open state since Aug 30, 2022.

from iqbit.

ntoporcov avatar ntoporcov commented on July 30, 2024

Yeah, it's hard to fix something that I don't use and don't necessarily understand how it's used so I prioritized other issues..

What is this reverse proxy thing? Why do you use it? What is it actually doing in your network?

from iqbit.

yunkaig avatar yunkaig commented on July 30, 2024

I'm using apache2. You need to reverse proxy the static path as well.

I set

ProxyPass "/qbittorrent/" "http://127.0.0.1:7654/"

ProxyPass "/api" "http://127.0.0.1:7654/api"

ProxyPass "/static" “ http://127.0.0.1:7654/static”

in the .conf file. That fixed my reverse proxy and now everything works just fine.

Not quite sure about nginx, but I think the solution would look similar.

from iqbit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.