使用以下命令检查正在运行的容器是否共享所需的Docker网络。
docker ps—格式
“表{{.Names}}t{{.Networks}}”
代码语言:
猛击
(
猛击
)
正在运行的Docker容器及其所属网络的列表。
访问Nginx代理管理器面板
打开浏览器,转到端口81上的服务器IP地址(“
http://server-ip-address:81
“),您可以在其中访问NPM管理界面。使用默认凭据登录:
- 用户名:
[电子邮件保护]
- 暗语
changeme
Nginx代理管理器UI
将出现一个弹出窗口,要求您更新您的管理员帐户信息。输入您的全名、用户名和有效的电子邮件地址,然后单击“
拯救
”按钮确认您的更改。
更新管理员帐户信息。
将打开一个新窗口,供您更新管理员密码。类型
changeme
“在”
当前密码
”字段,然后选择并在以下两个字段中输入新的安全密码。点击
拯救
”以应用更改。
长葛NPM管理员的密码。
这将把你带到用户页面,在那里你可以看到你的管理帐户已经更新。
Nginx代理管理器用户。
SSL证书的颁发
我们都准备颁发有效的SSL证书,以便我们的服务可以通过HTTPS安全连接。只需确保您设置了一个有效的(可解析的)DNS“a”记录,该记录指向您刚刚安装Nginx Proxy Manager的服务器的公共IP地址。
您可以使用nslookup或dig命令快速验证这一点。例如,我们正在获取主机的SSL证书“
memos.tmplinux.com
。”快速检查确认它指向正确的IP地址。
正在检查DNS记录。
选择
SSL证书
”。然后,单击“
添加SSL证书
”按钮,通过Nginx代理管理器web界面获取证书。
SSL证书的颁发。
在下一个屏幕中,执行以下操作:
- 在里面
域名
,”输入要颁发证书的域名。
- 输入有效的电子邮件地址。
- 接受Let's Encrypt的条款。
- 单击“
拯救
“按钮开始获取证书。
使用Nginx代理管理器颁发SSL证书。
NPM将迅速开始在幕后工作,建立证书的整个过程将不超过20-30秒。
SSL证书的颁发。
页面将自动重新加载,如果一切顺利,指定域的新SSL证书将显示为就绪。
SSL证书的颁发。
使用Nginx代理管理器设置反向代理
我们现在正处于最激动人心的部分:使用Nginx代理管理器设置反向代理。我们将探讨两种场景:一种是使用SSL证书进行安全的HTTPS连接,另一种是在没有证书的情况下仅使用HTTP设置反向代理。让我们开始吧。
具有SSL证书的NPM反向代理
转到主菜单,选择“
主机
,”,然后选择“
代理主机
”。
添加主机。
在下一页上,单击“
添加代理主机
按钮
添加主机。
本节对于建立成功的反向代理连接至关重要,因此我们在下面详细介绍了每个选项。
将代理主机添加到Nginx代理管理器。
来自“
细节
选项卡,在
域名
”字段中,输入您希望Nginx代理管理器为其创建反向代理的域名。在我们的案例中,这是我们在前一步中刚刚为其颁发SSL证书的名称,即“
memos.tmplinux.com
.”
这个
计划
”部分至关重要。您可以在“
http
和
https
在这里此选项指示Docker容器是侦听HTTP请求还是HTTPS请求。在几乎所有情况下,默认情况下,Docker容器都不会开箱即用地设置为处理HTTPS,因此您通常希望使用“
http
在这里
在“
转发主机名/IP
”框中,只需键入Docker服务的名称即可。因为我们将流量发送到NPM容器和其他Docker容器以共享同一Docker网络,所以Nginx代理管理器使用它们的服务名称连接到它们。
不确定服务的名称是什么?请看下面的图片。
Docker服务名称。
在“
正向端口
”字段,键入Docker容器的端口号以接收传入请求。同样,不要将其与端口80和443混淆,NPM容器本身在它们上侦听。
如果您不确定端口,可以使用以下命令轻松检查它们:
docker ps—格式
“表{{.Names}}t{{.Ports}}”
代码语言:
猛击
(
猛击
)
检查运行Docker容器正在使用哪些端口。
只是为了把事情弄清楚!当你看到“
1080->80
“例如,这意味着Docker容器正在将其自己的内部端口80链接到主机上的端口1080。换句话说,它侦听的Docker容器端口本身是80,而不是1080。
最后,我们建议打开“
阻止常见漏洞
“针对常见网络攻击提供更好保护的选项。
现在,不要急于点击“
拯救
按钮相反,切换到“
SSL
“选项卡。从”
SSL证书
”菜单中,选择您不久前颁发的“让我们加密证书”。
在Nginx代理管理器中设置SSL证书。
启用这些设置:
- “
强制SSL
“:这会自动将流量从HTTP重定向到HTTPS,以实现安全浏览。
- “
HTTP/2支持
“:今天使用的推荐HTTP协议版本。
- “
HSTS已启用
“:这有助于防止某些恶意攻击。
在Nginx代理管理器中设置SSL证书。
最后,点击“
拯救
“以应用您的更改。
在NPM中配置反向代理。
关键时刻!将浏览器指向您在NPM中设置的地址。您的应用程序应该通过HTTPS安全运行,如地址栏中的挂锁图标所示。除了祝贺,我还能补充什么!
已成功配置NPM反向代理。
无SSL的NPM反向代理
在NPM中向不使用SSL证书的主机添加反向代理与前面的示例类似,但您需要做的一切都在
细节
“选项卡。换句话说,您不需要触摸”
SSL
”选项卡。
我们将为添加一个条目“
rss.tmplinux.com
,”指向我们的第二个Docker容器。要按照您习惯的方式执行此操作,请转到主菜单并选择“
主机
然后
代理主机
“。之后,只需单击”
添加代理主机
按钮
该方案是“
http
,”并且Docker服务被命名为“
freshrss
.”集装箱使用端口80。填写您的案例所需的信息,并应用您所做的设置,用确认
拯救
按钮
将代理主机添加到Nginx代理管理器。
请注意,与我们的第一位主持人不同,”
memos.tmplinux.com
,“我们为其颁发并配置了SSL证书的使用,我们的新地址标记为”
仅HTTP
.”
在NPM中配置反向代理(不使用SSL)。
通过将我们的浏览器指向该地址,NPM仅通过不安全的HTTP连接代理流量。
已成功配置NPM反向代理。
需要注意的是,我们建议仅在您仅在家庭网络中使用该服务的情况下使用此选项。但是,如果您的服务可以通过互联网访问,请在Nginx Proxy Manager中设置SSL证书,以启用安全的HTTPS连接。
在Nginx代理管理器中通过IP地址限制访问
提高安全性的一个有效方法是基于IP地址限制访问。Nginx代理管理器使这个过程变得非常快速和简单,只需点击几下。让我们带你走过去。
导航到“
访问列表
“部分,然后单击”
添加访问列表
按钮
通过Nginx代理管理器中的IP地址限制访问。
将出现一个模式窗口。在“
细节
”部分,指定一些您选择的描述性名称。
在NPM中创建新的访问列表。
切换到“
通道
选项卡。假设您想限制对您的私人家庭网络IP范围的访问
192.168.x.x
,”和特定的公共IP地址,“
1.2.3.4
“.
根据您的情况输入适当的地址,确保最后输入的是“
否认
“指令设置为”
全部的
。“配置完设置后,单击”
拯救
”按钮应用更改。
在NPM中创建新的访问列表。
如果这是您第一次创建访问列表,它将显示在列表的顶部。如果您需要进行更改,请不要担心——您可以随时轻松编辑,只需单击右侧的三点图标并选择“
编辑
.”
访问列表。
现在,让我们将访问列表应用于我们的一个主机,”
memos.tmplinux.com
.“导航到”
主机
” -> “
代理主机
,”然后单击右侧的三点图标并选择“
编辑
.”
将NPM访问列表应用于主机。
来自“
访问列表
下拉菜单,选择最近创建的
我的访问列表
“然后单击”
拯救
”确认。
将NPM访问列表应用于主机。
就是这样。现在,如果我们试图从我们的“
我的访问列表
,“Nginx代理管理器将显示”
403禁止
”页面如下所示。
拒绝NPM访问。
结论
使用Nginx proxy Manager设置反向代理为管理服务器流量、提高安全性和优化性能提供了一个强大且用户友好的解决方案。
通过提供方便的UI,NPM使用户即使在命令行经验有限的情况下也可以访问它来配置可靠、高性能和安全的反向代理服务器。
它还有效地简化了SSL证书和访问控制的集成,消除了传统上与设置此类服务器相关的许多复杂性。
欲了解更多信息,我们强烈建议访问NPM官方文件或项目网站。
谢谢你抽出时间!我希望你觉得这本指南有帮助。如果你有任何问题,请在下面的评论部分告诉我。