Nginx proxy manager安装和使用
本文最后更新于 330 天前,如有失效请评论区留言。

安装NPM

Nginx proxy manager(NPM)是一个基于 Nginx 和 Nginx Plus 的开源项目,用Web界面简化和管理反向代理和虚拟主机的配置。

什么是反向代理呢?我们先来看正向代理,正向代理服务器代表客户端发送请求,将请求转发给目标服务器(常用的加速器)

img

反向代理是当客户端访问服务器时,首先请求反向代理服务器,然后由反向代理服务器根据服务器的负载情况(比如服务器的当前工作负荷)来动态选择将请求转发到哪个后端服务器。这就是负载均衡,而负载均衡是反向代理的一种常见策略,因此它们经常一同使用。

img

简单来说 正向代理服务端不知道真正的客户端,反向代理客户端不知道真正的服务端

创建目录并创建compose.yml文件,后面基本上每个软件都会创建一个目录和compose.yml文件用来管理和方便迁移

mkdir -p ~/docker/npm && cd ~/docker/npm && vim compose.yml

10000端口可以根据自己的喜好更改,一般在1024到65535中取值,注意避开系统已经使用的端口,可以使用

netstat -t4lpn

查看ipv4的tcp端口,:后面的就是端口号避免重复就可以了

image-20231129004713926

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '10000:81' # 可修改
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Esc:wq退出并保存 然后部署

docker compose up -d

打开网址

http://xxx.xxx.xxx.xxx:10000/

输入默认的账户

[email protected]

密码

changeme

然后进来填写一下个人信息,Email邮箱需要填写一个真实的邮箱,到时候SSL证书过期会发邮箱提醒

image-20231202234054196

然后在输入changeme默认密码再修改成你想要的密码

先添加SSL证书

image-20231203003233824

添加一个主域名和通配符域名

勾选Use a DNS Challenge

image-20231203003526661

选择你域名托管的供应商,我这里是DNSPod

使用腾讯云的DNSPod需要用DNSPod Token 别使用 腾讯云 API 密钥 生成的

然后把DNSPod账号绑定的邮箱和申请的id,key传入点击save按钮即可成功(DNSPod保存会报错,请参考这篇文章)

image-20231203004408753

接下来就开始反代Docker应用

image-20231203004829463

点击Add Proxy Hosts

添加一个子域名作为你后面访问时通过这个域名来访问,ip默认都是172.17.0.1这是docker的bridge网络默认ip地址,端口就填写当前使用docker compose映射出来的管理端口,也就是当前页面路径:后面的数字

image-20231203010050329

下面这三个选项分别是

Cache Assets 启用或禁用对静态资产(如图像、CSS文件、JavaScript文件等)的缓存

Block Common Exploits 启用或禁用对常见网络攻击和漏洞的阻止措施。防止SQL注入、跨站脚本攻击(XSS)等 必须开启

Websockets Support 启用或禁用对WebSocket协议的支持 一般有标注项目用到了WebSocket才启用

接下来点击SSL选项

image-20231203015404057

Force SSL 强制将所有传入的 HTTP 请求重定向到 HTTPS 协议上

HTTP/2 Support HTTP/2 是 HTTP 协议的第二个主要版本,旨在提高网页加载性能。它引入了一些新特性,包括多路复用(Multiplexing)、头部压缩、服务器推送等,以减少页面加载时间并提高性能。如果确定没有使用HTTP/2的项目可以关闭

HSTS Enabled 强制使用加密连接(HTTPS)来访问网站,以提高站点的安全性。当启用 HSTS 后,服务器会向客户端发送特定的 HTTP 头部,其中包含 HSTS 指令,告诉浏览器在未来一段时间内只使用 HTTPS 访问该站点。

HSTS Subdomains 对于该域名及其所有子域名都应用 HSTS 规则, 比如主域名是aaa.com 子域名就是blog.aaa.com

Force SSL 和 HSTS Enabled 的区别

Force SSL 是一种通过服务器端的重定向规则强制将 HTTP 请求重定向到 HTTPS 地址的方式,HSTS Enabled 是通过在服务器响应中使用 HSTS 头部告诉浏览器在未来的一段时间内始终使用 HTTPS。使用 HSTS 可以减少重定向次数,提高站点性能和安全性。通常推荐同时启用 Force SSL 以处理初次访问时的重定向,并启用 HSTS 以加强安全性

一般是这四个选项都开启,然后点击 Save 保存,接下来就可以直接点击连接使用https网址访问当前的npm项目了

image-20231203015404057

你可能有这样的疑惑,为什么需要反向代理呢?直接用ip:端口不行吗?

ip:端口肯定是可以的,但是你要为了更安全来做考虑,首先就是使用了HTTPS可以有效的防止窃听、截取或篡改数据。第二点,使用子域名来访问,可以有效的防止别人通过ip:端口从1024扫描到65535,这样很容易就扫描出你开放了那个端口然后再根据这个端口部署的应用是否有漏洞,从而入侵你的服务器

版权声明:本文为BIMiracle原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇