Loading... 今天在研究利用Ngxin转发多域名的时候,发现了一个Nginx-proxy的项目,原理也是利用**反向代理转递流量**,但是这至少是个项目,而且一次配置方便使用,比较方便。 ### 什么是nginx-proxy? nginx-proxy 启动一个容器来运行 nginx 和 [docker-gen](https://github.com/jwilder/docker-gen)。 在主机上的容器启动和停止时 docker-gen 会生成 nginx 反向代理配置并且重新加载 nginx。 <!--more--> > 可以参考 Automated Nginx Reverse Proxy for Docker 了解用 nginx-proxy 的原因。 ### 使用方法 #### 启动 nginx-proxy 容器: $ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy 然后,任何你希望代理的容器,在启动时都设置一个环境变量 VIRTUAL_HOST=subdomain.youdomain.com $ docker run -e VIRTUAL_HOST=foo.bar.com ... 一个具体的例子: docker run -d -e VIRTUAL_HOST=2048.anysun.win alexwhen/docker-2048:latest Nginx-proxy在任何容器启动的时候,会检查是否存在VIRTUAL_HOST变量,如果有这个变量则把对应域名的流量转到这类去。这样ngxin的反向代理一次配置可以永久使用。 被代理的容器必须 expose 被代理的端口,可以通过在 Dockerfile 里面使用 EXPOSE 指令或者在 docker run 时使用 –expose 参数。 #### 与Forsaken-mail的冲突 但是我初衷是想解决Forsaken的问题,但是我不论怎么处理,就是存在问题。具体的原因我就无法说明了。 ![chrome_2018-07-30_14-42-27.png][1] 看着这个503真是仇人啊。 ---------- 备注几条命令: lsof -i :80 查看80端口被什么程序占用 netstat -an | grep :80 查看80端口的是否已在使用中,可验证使用该端口的服务是否已正常运行 netstat -tunlp | grep :80 查看80端口是被哪个服务使用着 [root@www.linuxidc.com log]# netstat -tunlp | grep 80 tcp 0 0 :::80 :::* LISTEN 1013/httpd netstat -tunlp | grep : 所有端口占用情况 目前来看,Docker对我来说适用于在小鸡上搞各种东西,避免破环主机环境,长期保证项目的稳定。 但是对于做站来说,需要设置的东西太多,目前成型的项目也比较少。比如现在HTTPS啥的没法进一步解决。 [1]: https://imgki.com/usr/uploads/2019/03/2851925580.png Last modification:March 4, 2019 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏