使用Nginx Proxy Manager反向代理docker应用以及java项目
简介
Nginx Proxy Manager 就是一个 Nginx 的代理管理器,它最大的特点是简单方便。
即使是没有 Nginx 基础的小伙伴,也能轻松地用它来完成反向代理的操作,而且因为自带面板,操作极其简单,非常适合配合 docker 搭建的应用使用。Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续期,方便省心。
下面我们就来介绍如何使用 Nginx Proxy Manger 来代理docker应用以及java项目,实现反向代理和 HTTPS 访问。
安装 Nginx Proxy Manager
说明:默认你的服务器已经安装了 Docker 和 Docker Compose,如果你没有安装,可以参考:docker安装详细教程 的环境搭建部分来进行安装
Nginx Proxy Manager(以下简称 NPM) 官网:https://nginxproxymanager.com/
mkdir -p ~/docker_data/nginxproxymanager # 创建一个 npm 的文件夹
cd ~/docker_data/nginxproxymanager # 进入该文件夹
vi docker-compose.yml
在英文状态的输入法下,按下 i
,左下角出现 --INSERT--
后,粘贴填入下面的内容:
推荐在本地创建好文件后上传到以上创建的目录下
version: '3'
services:
app:
image: 'chishin/nginx-proxy-manager-zh:latest'
restart: always
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
以上镜像为中文翻译版,与原版同步更新,如喜欢 原版的,可将image 改为 jc21/nginx-proxy-manager:latest
注意:安装了 NPM 之后,就不需要再安装 Nginx 了,否则会端口冲突(不建议修改 NPM 的 80、443 端口)。如果你的服务器安装了宝塔面板,也可以和 NPM 一起使用,只要你到软件后台把宝塔安装的 Nginx 关闭或者卸载即可。
启动 NPM:
docker-compose up -d # -d 表示后台运行
docker compose up -d # 如果你用的是 docker-compose-plugin 的话,用这条命令
不出意外,此时你使用 http://127.0.0.1:81 就可以访问 NPM 的网页端了。(注意把 127.0.0.1
替换成你实际服务器的 IP)
如果不能访问,请先检查防火墙端口是否开放
不知道服务器 IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的 IP。
遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。
默认管理员用户:
Email: admin@example.com
Password: changeme
首次登陆进去会提示设置用户名,邮箱,密码等信息,尽量设置复杂一点。
以上设置完成后,我们将进入首页页面
配置代理
选择代理服务,添加代理
-
域名: 解析到服务器的域名
-
协议:默认选择HTTP ,除非你有自签名证书
-
转发主机:填入服务器的 IP,或者 Docker 容器内部的 IP(如果 NPM 和 Halo 搭建在同一台服务器上的话)
-
转发端口:需要代理应用端口,根据自己实际情况填写
-
缓存资源,阻止常见漏洞,支持websockets 建议开启,根据自己实际情况填写
SSL设置
选择申请一个新的SSL证书,证书有效期3个月,到期自动续期
如上配置,点击保存,保存后需再次编辑,在SSL设置处,开启强制SSL,保存即可
至此,不出意外的话,你代理的应用已经可以正常访问了!
同样的,举一反三,试试把你的 NPM 也用一个域名来反向代理一下吧。(小提示:你需要再解析一个域名(可以是二级域名)到 NPM 所在的服务器上,反代页面需要填的 IP 可以填 docker 容器内的 IP 也可以填服务器的 IP,端口填 81
即可)
本文链接:https://www.518wz.top/post/23.html 转载需授权!