首页 > 系统相关 >Nginx Proxy Manager反向代理工具

Nginx Proxy Manager反向代理工具

时间:2024-08-14 17:49:00浏览次数:16  
标签:npm compose IP 端口 Nginx Manager Proxy docker Docker

简介

Nginx Proxy Manager(以下简称 NPM)就是一个 Nginx 的代理管理器,它最大的特点是简单方便。

即使是没有 Nginx 基础的小伙伴,也能轻松地用它来完成反向代理的操作,不需要自己写复杂的nginx配置,而且因为自带面板,操作极其简单。

Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续期,方便省心。

官方网站:https://nginxproxymanager.com/ 官方快速安装:https://nginxproxymanager.com/g

环境搭建

我们推荐按照 Docker 官方文档安装 Docker 和 Docker Compose,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。

Docker 安装文档
Docker Compose 安装文档

创建容器

1. 在系统任意位置创建一个文件夹,此文档以 /opt/docker/npm 为例

mkdir -p /opt/docker/npm && cd /opt/docker/npm
mkdir -p ./{conf,data,logs}

注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存

2. 创建 docker-compose.yaml

vim docker-compose.yml

在英文状态的输入法下,按下 i,左下角出现 --INSERT-- 后,粘贴填入下面的内容:

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'              # 不建议修改端口
      - '81:81'              # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
      - '443:443'            # 不建议修改端口
    volumes:
      - ./data:/data         # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
      - ./letsencrypt:/etc/letsencrypt  # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建
    # network_mode: "host"

之后,同样在英文输入法下,按一下 esc,然后 :wq 保存退出。

3. 启动服务

docker-compose up -d

实时查看日志:

docker-compose logs -f

4. 登录服务

用浏览器访问 http://ip:端口号 即可
例如: http://127.0.0.1:81
默认登陆的用户名:[email protected] 密码:changeme

第一次登陆会提示更改用户名和密码,建议修改一个复杂一点的密码。

更新容器

1. 停止运行中的容器组

cd /opt/docker/npm && docker-compose down

2. 备份数据(重要)

cp -r /opt/docker/npm /opt/docker/npm.archive

需要注意的是,npm.archive 文件名不一定要根据此文档命名,这里仅仅是个示例。

3. 更新服务

修改 docker-compose.yaml 中配置的镜像版本

拉取镜像

docker-compose pull npm

重新启动容器

docker-compose up -d

配置反向代理

首先我们登陆网页端之后,会弹出修改用户名和密码的对话框,我们根据自己的实际来修改自己的用户名和邮箱。

保存之后,会让我们修改密码(建议用一个复杂的密码)。

接着我们就可以添加一个反向代理了。

点击 Proxy Hosts

接着点击 Add Proxy Host,弹出如下对话框:

看起来都是英文,很复杂,但是其实很简单,我们只要用到其中的几个功能即可,这边稍微解释一下:

  • Domain Names :填我们网站的域名,首先记得做好 DNS 解析,把域名绑定到我们的服务器的 IP 上
  • Scheme :默认 http 即可,除非你有自签名证书
  • Forward Hostname/IP :填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 网站搭建在同一台服务器上的话)
  • Forward Port:填入网站映射出的端口,这边默认是 8090
  • Cache Assets :缓存,可以选择打开
  • Block Common Exploits: 阻止常见的漏洞,可以选择打开
  • Websockets Support :WS 支持,可以选择打开
  • Access List: 这个是 NPM 自带的一个限制访问功能,这边我们不管,后续可以自行研究。
  • 以下是一个样列:

因为样例的 NPM 和 网站搭建在同一台服务器 上,所以这边的 IP,图中填的是 172.17.0.1,为 Docker 容器内部的 IP 地址,

可以通过下面的命令查询:

ip addr show docker0
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:e4:a3:b5:b9 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

这边的 IP 是 172.17.0.1,填入这个 IP,可以不用打开防火墙的 8090 端口。

当然,如果你的 NPM 和网站不在同一台服务上,你需要在 IP 部分填入 你的 网站所在的服务器的 IP,并在服务商(部分服务商如腾讯、阿里)的后台打开 8090 端口。

申请 SSL 证书

接着我们来申请一张 SSL 证书,让我们的网站支持 https 访问。

如图所示,记得打开强制 SSL,其他四个的功能请自行研究,这边不多做讨论。

申请证书需要你提前将域名解析到 NPM 所在的服务器的 IP 上;
如果你使用的是国内的服务器,默认 80443 端口是关闭的,你需要备案之后才能使用;
如果你使用了 CloudFlareDNS 服务,记得把小黄云关闭(即不开启 CDN)。

不出意外,你将成功申请到 SSL 证书,证书会三个月自动续期。

再次点开配置,查看一下,将强制 SSL 打开。

至此,你已经成功完成了网站的反向代理,快尝试使用域名访问一下看看吧!

如何安装中文版

GitHub: xiaoxinpro/nginx-proxy-manager-zh
Docker: chishin/nginx-proxy-manager-zh
当你使用官方示例的docker-compose时需要注意,将image镜像jc21/nginx-proxy-manager替换为chishin/nginx-proxy-manager-zh即可实现中文部署

中文镜像并没有重新构建后端代码,由Dockerfile-zh源码可以得知,中文版镜像基于官方镜像替换前端代码来实现的,所以中文版本的全部功能与官方版本完全相同,只是显示界面的文字不同的区别。

标签:npm,compose,IP,端口,Nginx,Manager,Proxy,docker,Docker
From: https://www.cnblogs.com/safe-rabbit/p/18359467

相关文章

  • Linux 设置零时proxy 安装数据源
    一、方法一设置临时HTTP代理您可以通过在命令行中临时设置环境变量来指定HTTP代理:exporthttp_proxy=http://proxy-server:portexporthttps_proxy=http://proxy-server:port二、方法二使用SOCKS代理的配置方法设置SOCKS5代理的环境变量:exportALL_PROXY=socks5:......
  • 【Nginx】nginx案例-配置文件
      案例一、【web服务应用】七层反向代理,负载均衡,动静分离 vim/usr/local/nginx/conf/nginx.conf......http{......#gzipon;#配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大upstreamtomcat_server{server1......
  • nginx 配置
    Nginxvue项目配置好后,刷新页面会出现404?方案:增加重定向try_files$uri$uri//index.html;mac配置Nginx1、brewinstallnginx安装nginx2、brewinfonginx查询nginx信息 3、查看/修改nginx的配置文件:打开文件/opt/homebrew/etc/nginx/,可以看到有nginx.conf文件,在该......
  • 4.第一天(第四部分):Using IPS Device Manager
    idm初始化ids,通过https,进行连接。https://202.100.12.101设置jave分配内存-Xmx256m证书的3个test1.办法者是否可信2.时间是否有效3.url的主机名和生猪里边的cn是否匹配rdep思科私有用来传输configsdee用来传输事件告警证书是自签名的sdee由icsa研发,促进了整合的第三......
  • Multicast Proxy
    OracleRAC(RealApplicationClusters)的组播通常用于私网环境。在RAC架构中,组播是一种重要的通信机制,用于在集群节点之间高效地传输数据。这种机制特别适用于实现诸如缓存融合(CacheFusion)等功能,它允许多个数据库实例在不同的服务器上协同工作,同时保持数据的一致性。在某些云环境......
  • Nginx:Centos-7安装Nginx并配置阿里的SSL证书
    1.安装编译工具在线安装yum-yinstallmakezlibzlib-develgcc-c++libtoolopensslopenssl-devel2.安装PCRE依赖库说明PCRE(PerlCompatibleRegularExpressions)是一个重要的依赖库,它提供了对正则表达式的支持。在Nginx的配置中,正则表达式用于匹配和处理URL、请求......
  • Win10运行Nginx 1.27.0
    有时候在Win10下预览一下页面效果,需要起一个临时的web服务器,以下记录运行Nginx的步骤前往https://nginx.org/en/download.html下载windows使用的压缩包解压,假设目录为nginx-1.23.3到目录下命令行执行startnginx启动Nginxcdc:\nginx-1.23.3startnginx运行后可......
  • windows系统配置nginx环境运行pbootcms访问首页直接404的问题
    安装pbootcms后访问后台/admin.php可以,但是直接访问首页就404。运行环境运行环境采用的是:windows+nginx+php的环境详细经过客户说伪静态规则一直无法生效,看了一下,代码放到服务器除了后台/admin.php可以访问到,其他页面都是404错误,一直各种尝试导入伪静态,但是所有页面依然是404。......
  • nginx反向代理配置https和http能同时访问后,发现一些页面使用http访问正常,使用https访
    报错:Thisrequesthasbeenblocked;thecontentmustbeservedoverHTTPS,如下图: 问题原因:HTTPS页面里动态的引入了HTTP资源,比如引入一个js文件,会被直接block掉的.在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉。 解决方法一:(没试过,要改的页面太多了,没有使......
  • Keepalived + Nginx 主备容灾方案介绍
    Keepalived+Nginx主备容灾方案介绍*服务器**IP地址**角色*Srv01192.168.249.100VIP:192.168.249.110Nginx+KeepaliveSrv02192.168.249.101Nginx+Keepalive概述Keepalived和Nginx的组合是一个常见的高可用性(HA)方案,尤其适用于Web服务。通过Keepalived实现的虚......