使用docker部署应用后,我们可以通过IP和对应的端口来访问,但是还有优化的空间,通过域名访问岂不是更好吗。教程,他来了!这次我们使用的是NginxProxyManager,以下将简称NPM。
项目地址:
https://github.com/NginxProxyManager/nginx-proxy-manager
前提:
- 安装好
docker
和docker-compose
。 - 请关闭Nginx等服务,确保80和443端口不被占用。
搭建教程:
新建
NginxProxyManager
目录,并cd
进入。新建
docker-compose.yml
文件,内容如下:version: '3.8' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt # Uncomment the next line if you uncomment anything in the section # environment: # Uncomment this if you want to change the location of # the SQLite DB file within the container # DB_SQLITE_FILE: "/data/database.sqlite" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true'
将代码复制进去,然后保存退出。
接着执行
docker-compose up -d
,等容器启动后,我们访问前台80端口。若能打开则证明安装成功。这时候访问它的81端口管理页面,即
http://IP:81
。默认的超级管理员用户和密码是:Email:
[email protected]
Password:
changeme
登录管理页面后,我们去添加一个proxy,域名是你要代理的域名,方案就写http就行了,转发的主机IP填写你的服务器IP(如果NPM和应用在一个机器上,也可以填写docker容器的ip,下面的就都勾选上就行)。
配置好这个后,我们去开启HTTPS:点击SSL协议,然后选择请求新的SSL证书,勾选强制使用HTTPS,同意条款后保存即可
都勾选保存后,就可以看到它启动生效了!然后我们去访问这个域名来看看,成功!而且HTTPS也生效了。
感谢大佬们的开源精神,很不错的项目,如果你想的话,还可以把这个NPM的管理页面也加一层proxy,以后就可以通过域名来访问管理面板了。