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