本来是使用的swag作为反代的中心的,swag是一个快速签发证书、自动续签、反向代理、通配SSL的工具。但是它并没有webui的界面,所有的代理只能由每个配置文件控制,修改,使用颇为麻烦。每次新增配置,或者修改配置,都必须重启容器,才会使配置生效,如果配置写错。就会导致docker无法正常启动。如果你正好在外面,那么你就访问不到你的nas了。
正好,nginx-proxy-manager(以下简称npm)更新之后。现在已经支持dns申请证书了。国内支持dnspod以及阿里云。而且npm拥有webui界面,更易于上手。修改配置之后,立刻生效。并且在webui新增或者修改了错误的配置也不会导致docker停机(直接修改了错误的配置文件,还是会导致docker崩溃。)
首先是安装,
unraid只需要apps搜索Nginx-Proxy-Manager-Official。
然后填上你的任一一个空闲的内网ip即可
点击启动,即可。
这是在浏览器输入http://ip:81 即可打开到npm的界面。
默认的账号:admin@example.com
默认的密码:changeme
首次登录会让你修改为你自己的邮箱和密码。
泛域名的ddns设置,各位根据自己的路由器系统和不同的dns服务商,对应设置。这里不展开
现在说一下快速证书申请。
点击save。就申请完毕了。
现在开始添加代理
看到绿色的online之后,不出意外,你已经可以用你想要的二级域名访问到你的transminssion了
对于在某些在控制台上创建了之后,会有各种奇怪问题的docker,(例如跳转之后,丢失了我们的端口)比如unraid、Filebrowser、heimdall等等。
我们采取下面投机取巧的办法,进行使用。
1、第一步,还是在控制台正常的创建反代。
2、找到刚才创建的这条反代的编号
3、在任何的文件管理器里面,找到相同编号的反代文件
unraid的默认路径是/mnt/user/appdata/Nginx-proxy-manager/data/nginx/pro_host
4、根据图片提示修改。
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;
}