收起左侧

[攻略分享]nginx实现一个域名访问不同服务

6
回复
67
查看
[ 复制链接 ]

2

主题

6

回帖

0

牛值

江湖小虾

悬赏1飞牛币未解决

<br /> <br />

需求

使用一个域名 nas.example.com:8080 访问不同的服务,例如 nas.example.com:8080/webman 访问迅雷, nas.example.com:8080/qbt 访问qBittorrent。减少暴露在外网的端口数,防止某些无需认证的服务暴露在外网中,并且只需映射一个域名到nas上

准备工作

  • 能外网访问的nas
  • 能使用ssh的软件或工具
  • 会使用 vim

配置防火墙

根据自身情况放行端口,此处我使用了nas自带的防火墙,关闭了主路由的防火墙,并且只放行了 5666、5667、8080 三个端口

image.png

连接nas并安装nginx

打开ssh工具连接nas, 飞牛系统是debian,输入密码时不会显示密码,输入完之后回车确认即可

image.png

更新软件包列表,输入 sudo apt update

image.png

安装nginx, 输入 sudo apt install nginx (这里我已经安装过,与未安装的显示是不一样的)

image.png

建议先备份nginx的配置文件,如

sudo cp /etc/nginx/nginx.conf ./nginx.conf
sudo cp /etc/nginx/sites-enabled/default ./default

配置nginx

sudo vim /etc/nginx/sites-enabled/default 并且在

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;

    }

的后面添加如下内容

location /qbt/ {
               # qBittorrent的地址
            proxy_pass         http://127.0.0.1:8085/;
            proxy_http_version 1.1;

            # headers recognized by qBittorrent
            proxy_set_header   Host               $proxy_host;
            proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host   $http_host;
            proxy_set_header   X-Forwarded-Proto  $scheme;
            proxy_cookie_path  /                  "/; Secure";
    }


    location /webman {
              # 迅雷的地址
            proxy_pass http://127.0.0.1:12345;

            # 关键代理头
        proxy_set_header Host '$host:$server_port';
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

    }

完整的default 大概是这样

server {
    listen 8080 default_server;
    listen [::]:8080 default_server;

    root /var/www/html;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;

    }

    location /qbt/ {
            proxy_pass         http://127.0.0.1:8085/;
            proxy_http_version 1.1;

            # headers recognized by qBittorrent
            proxy_set_header   Host               $proxy_host;
            proxy_set_header   X-Forwarded-For    $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host   $http_host;
            proxy_set_header   X-Forwarded-Proto  $scheme;

            # optionally, you can adjust the POST request size limit, to allow adding a lot of torrents at once
            #client_max_body_size 100M;

            # No longer required since qBittorrent v5.1:
            # Since v4.2.2, is possible to configure qBittorrent
            # to set the "Secure" flag for the session cookie automatically.

            proxy_cookie_path  /                  "/; Secure";
    }


    location /webman {
            proxy_pass http://127.0.0.1:12345;

            # 关键代理头
        proxy_set_header Host '$host:$server_port';
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

    }
}

保存退出后, 重载nginx sudo nginx -s reload

效果

访问 nas.example.com:8080/webman

image.png

访问 nas.example.com:8080/qbt

image.png

参考链接

https://github.com/qbittorrent/qBittorrent/wiki/NGINX-Reverse-Proxy-for-Web-UI

附件: 您需要 登录 才可以下载或查看,没有账号?立即注册
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

35

主题

2445

回帖

290

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

麻烦攻略发到攻略版块去。
我选不了攻略的板块。。。。。  详情 回复
3 天前

8

主题

289

回帖

140

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

这个和反代的应用关联性很大,如果应用支持相对路径直接就能实现,如果应用里写死了很多绝对路径就很麻烦
是的,现在只反代了这两个,后续再看情况是否继续反代  详情 回复
3 天前

2

主题

6

回帖

0

牛值

江湖小虾

3 天前 楼主 显示全部楼层
玉尺书生 发表于 2025-3-29 20:23
麻烦攻略发到攻略版块去。

我选不了攻略的板块。。。。。

2

主题

6

回帖

0

牛值

江湖小虾

3 天前 楼主 显示全部楼层
archblux 发表于 2025-3-29 21:54
这个和反代的应用关联性很大,如果应用支持相对路径直接就能实现,如果应用里写死了很多绝对路径就很麻烦 ...

是的,现在只反代了这两个,后续再看情况是否继续反代

35

主题

2445

回帖

290

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

Accidia 发表于 2025-3-30 01:42
我选不了攻略的板块。。。。。

你去攻略分享那个版块发帖子不就能选了吗?你跑到问答互助里发帖子当然选不了。
哦哦, 原来如此,可以帮忙把帖子移到分享专区么 ? 谢谢  详情 回复
前天 20:16

2

主题

6

回帖

0

牛值

江湖小虾

前天 20:16 楼主 显示全部楼层
玉尺书生 发表于 2025-3-30 12:55
你去攻略分享那个版块发帖子不就能选了吗?你跑到问答互助里发帖子当然选不了。 ...

哦哦, 原来如此,可以帮忙把帖子移到分享专区么 ? 谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则