本来是使用的swag作为反代的中心的,swag是一个快速签发证书、自动续签、反向代理、通配SSL的工具。但是它并没有webui的界面,所有的代理只能由每个配置文件控制,修改,使用颇为麻烦。每次新增配置,或者修改配置,都必须重启容器,才会使配置生效,如果配置写错。就会导致docker无法正常启动。如果你正好在外面,那么你就访问不到你的nas了。

正好,nginx-proxy-manager(以下简称npm)更新之后。现在已经支持dns申请证书了。国内支持dnspod以及阿里云。而且npm拥有webui界面,更易于上手。修改配置之后,立刻生效。并且在webui新增或者修改了错误的配置也不会导致docker停机(直接修改了错误的配置文件,还是会导致docker崩溃。)

首先是安装,

unraid只需要apps搜索Nginx-Proxy-Manager-Official。

然后填上你的任一一个空闲的内网ip即可

stickPicture.png

点击启动,即可。

这是在浏览器输入http://ip:81 即可打开到npm的界面。

默认的账号:admin@example.com

默认的密码:changeme

首次登录会让你修改为你自己的邮箱和密码。

泛域名的ddns设置,各位根据自己的路由器系统和不同的dns服务商,对应设置。这里不展开

现在说一下快速证书申请。

stickPicture (1).pngstickPicture (2).pngstickPicture (3).pngstickPicture (4).pngstickPicture (5).png

点击save。就申请完毕了。

现在开始添加代理

stickPicture (6).pngstickPicture (7).pngstickPicture (8).pngstickPicture (9).pngstickPicture (10).pngstickPicture (11).png

看到绿色的online之后,不出意外,你已经可以用你想要的二级域名访问到你的transminssion了

对于在某些在控制台上创建了之后,会有各种奇怪问题的docker,(例如跳转之后,丢失了我们的端口)比如unraid、Filebrowser、heimdall等等。

我们采取下面投机取巧的办法,进行使用。

1、第一步,还是在控制台正常的创建反代。

stickPicture (12).png

2、找到刚才创建的这条反代的编号

stickPicture (13).png

3、在任何的文件管理器里面,找到相同编号的反代文件

unraid的默认路径是/mnt/user/appdata/Nginx-proxy-manager/data/nginx/pro_host

stickPicture (14).png

4、根据图片提示修改。

stickPicture (15).png

5、保存之后,重启npm的docker,就可以正常访问你需要代理的业务。

(直接修改了配置文件的,在控制台不要再次进行修改。在控制台修改了,会直接覆盖配置文件。)

6、

unraid

# ------------------------------------------------------------
# 你的二级域名(该行仅作为标题,提示用)
# ------------------------------------------------------------


server {
  set $forward_scheme http;
  set $server         你的内网ip;
  set $port           你的内网端口;

  listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443;


  server_name 你想要的二级域名;


  # Let's Encrypt SSL
  include conf.d/include/letsencrypt-acme-challenge.conf;
  include conf.d/include/ssl-ciphers.conf;
  ssl_certificate /etc/letsencrypt/live/npm-6/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/npm-6/privkey.pem;




  access_log /data/logs/proxy-host-1_access.log proxy;
  error_log /data/logs/proxy-host-1_error.log warn;



  location / {
    set              $upstream http://你的内网ip+端口
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    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 http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_redirect http:// https://;
    proxy_buffering off;
    proxy_pass       $upstream;
  
    # Force SSL
    include conf.d/include/force-ssl.conf;

  }





  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}

Filebrowser

# ------------------------------------------------------------
# 你的二级域名(该行仅作为标题,提示用)
# ------------------------------------------------------------


server {
  set $forward_scheme http;
  set $server         10.10.10.2 你的docker内网ip;
  set $port           8083 你的docker内网端口;

  listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443;


  server_name 你想要的二级域名;
  client_max_body_size 0;

  # Let's Encrypt SSL
  include conf.d/include/letsencrypt-acme-challenge.conf;
  include conf.d/include/ssl-ciphers.conf;
  ssl_certificate /etc/letsencrypt/live/npm-6/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/npm-6/privkey.pem;


  access_log /data/logs/proxy-host-2_access.log proxy;
  error_log /data/logs/proxy-host-2_error.log warn;



  location / {
    set              $upstream http://10.10.10.2:8083 修改成你自己的ip和端口;
    proxy_pass       $upstream;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    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 http;
    proxy_set_header X-Nginx-Proxy true;
    proxy_redirect off;
}  

  



  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}

Heimdall

# ------------------------------------------------------------
# 你自己的二级域名
# ------------------------------------------------------------


server {
  set $forward_scheme http;
  set $server         heimdall的ip;
  set $port           heimdll的端口;

  listen 80;
listen [::]:80;

listen 443 ssl http2;
listen [::]:443;


  server_name 你自己的二级域名;


  # Let's Encrypt SSL
  include conf.d/include/letsencrypt-acme-challenge.conf;
  include conf.d/include/ssl-ciphers.conf;
  ssl_certificate /etc/letsencrypt/live/npm-6/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/npm-6/privkey.pem;


  access_log /data/logs/proxy-host-3_access.log proxy;
  error_log /data/logs/proxy-host-3_error.log warn;



  location / {
    set              $upstream http://heimdall的内网ip和端口;
    proxy_pass       $upstream;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection upgrade;
    proxy_set_header Host $http_host;
    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 https;
    proxy_set_header X-Nginx-Proxy true;
    proxy_redirect off;


  
  }





  # Custom
  include /data/nginx/custom/server_proxy[.]conf;
}

最后修改:2022 年 04 月 28 日
如果觉得我的文章对你有用,请随意赞赏