确认订单
1
1
商品说明
[安装Docker](snippetslab://snippet/9905EF55-5456-44D7-A572-B527928DBBE7) ## 安装NPM ### 新建docker-compose.yml > mkdir Nginx_Proxy_Manager && cd Nginx_Proxy_Manager && vim docker-compose.yml ```docker version: '3.8' services: app: # image: 'jc21/nginx-proxy-manager:latest' image: 'chishin/nginx-proxy-manager-zh:release' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt environment: - TZ=Asia/Shanghai ``` ### 部署运行(文件路径不能有中文,又碰到坑) ``` docker-compose up -d ``` ## 使用 ### 登录管理页面 ``` http://服务器IP:81 ``` #### 默认管理员信息 ``` Email: admin@example.com Password: changeme ``` #### 申请Let's Encrypt通配符证书(每隔2个月Nginx Proxy Manager会自动更新) ### 自定义 Nginx 配置 ``` 如果您是更高级的用户,您可能会渴望额外的 Nginx 可定制性。 NPM 能够在不同的位置包含不同的自定义配置片段。 您可以添加自定义配置片段文件,/data/nginx/custom如下所示: /data/nginx/custom/root.conf: 包含在 nginx.conf 的最后 /data/nginx/custom/http_top.conf:包含在主 http 块的顶部 /data/nginx/custom/http.conf:包含在主 http 块的末尾 /data/nginx/custom/events.conf:包含在事件块的末尾 /data/nginx/custom/stream.conf:包含在主流块的末尾 /data/nginx/custom/server_proxy.conf:包含在每个代理服务器块的末尾 /data/nginx/custom/server_redirect.conf:包含在每个重定向服务器块的末尾 /data/nginx/custom/server_stream.conf:包含在每个流服务器块的末尾 /data/nginx/custom/server_stream_tcp.conf:包含在每个 TCP 流服务器块的末尾 /data/nginx/custom/server_stream_udp.conf:包含在每个 UDP 流服务器块的末尾 每个文件都是可选的。 ``` ## 官方文档 [Nginx Proxy Manager](https://nginxproxymanager.com/guide/) ## Django项目的docker-compose.yml(多一个挂载静态文件的目录到NPM容器里面) ```docker version: '3.8' services: app: image: 'chishin/nginx-proxy-manager-zh:release' restart: unless-stopped ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt - ~/Django/DigitalCardSales/collected_static:/www/sales environment: - TZ=Asia/Shanghai ``` ## 托管静态文件方式 ```nginx location ^~ /static/ { expires max; alias /www/sales/; } ``` > 转发主机填写公网IP、内网IP、docker的IP都可以的。(如果填写docker的IP需与Nginx Proxy Manager容器在同网关下) ## 补充说明 > 配置好`Nginx Proxy Manager`与`Portainer`的域名绑定后,就可以去云服务器的安全组把`81`与`9000`的`Tcp`入站端口给关了,这样又能避免通过`IP+端口`访问,又能提升安全性。 > 小的tips:反向代理`Portainer`需要勾选`支持WebSockets`否则无法在`Portainer`面板`docker exec -it ID/Name /bin/bash`进入容器。