Table of Contents
平时配置Nginx过于麻烦,现在通过Nginx proxy manager 配置方便多了.
基础:
- 绑定固定ip的腾讯云服务器(或者其它)
- Docker-compose
- 域名
使用docker-compose 搭建nginx-proxy-manager 服务
登陆Cloud server, 运行
mkdir nginx-proxy-manager
cd nginx-proxy-manager
vim docker-compose.yml
主要是持久化存储,将设置都放在 nginx-proxy-manager 文件夹中,便于以后的迁移
docker-compose.yml
version: "3" services: nginx_manager: # network_mode: web image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # 80 端口 到 80 端口 - '443:443' # 443 端口到443 端口 - '81:81' # 81 端口默认的web管理UI 端口,可以映射到任何 example: '2134:81' environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: # network_mode: web image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql
运行
docker-compose up -d
这个时候可以打开portainer 界面,发现已经成功运行两个容器
nginx_proxy_manager_db_1 和 nginx_proxy_manager_nginx_manager_1
网页打开 http://${ip}:81
- 至此, 容器构建基本完成
具体使用nginx proxy manager 去构建nginx 服务
这里我主要是构建了Blog 服务和git 服务
可以看到,我构建的服务主要有
- gogs(git.mingzailao.live)
- nginx-proxy-manager(heimdall.mingzailao.live,这个二级域名没有用,后来觉得heimdall 首页有点鸡肋,便用来给了管理nginx 服务)
- wordpress Blog (mingzailao.live, www.mingzalao.live)
- 在线latex项目构建(overleaf.mingzailao.live, 这个没有放在Cloud server 上面, 使用了frp 服务放在本地,这个过后再讲吧)
- Docker UI(Portainer, portainer.mingzailao.live)
example: heimdall.mingzailao.live(其他的一样的)
- 注意本地端口的81端口是UI 界面, 我们想要通过 heimdall.mingzailao.live 访问${IP}:81
- 申请SSL证书
- 可以直接用自带的Let’s Encrypt
- Custom SSL Certificate From DNSPod(Tencent Cloud)
- Add Proxy Host
-
- 这里选择刚才申请的证书.
- Save
-
Done
现在访问 https://heimdall.mingzailao.live 可以直接访问nginx-proxy-manager 的UI 界面了(也就是 http://${ip}:81)
其余的服务同理
- 注意开启腾讯云防火墙端口
- 如果需要部署frp, 主要就是将另一台服务器的端口转发 同理将转发过来的端口配置好 Proxy Host 即可.