笔记|docker利用nginx配置多域名以及多端口号
时间:2017-10-14 13:59 热度:16020° 评论:4 条
最近在研究docker,在架设了几个网站后,发现个问题 宿主机的80端口只可以绑定一个容器,并且没办法实现多域名,所以想到了nginx的反代,以下是使用docker架设nginx反代的笔记。
安装docker,如果你的服务器上还没有相应的docker,可以参考CentOS安装步骤或者Ubuntu 系列安装 Docker步骤进行安装。(请自行google或者使用DaoCloud管理平台)
第二步:
获取nginx镜像,执行命令:
docker pull nginx
第三步:
创建并启动nginx容器,执行命令:
docker run -p 80:80 -v /nginx/conf.d:/etc/nginx/conf.d -d nginx
此时你已经创建了一下名字为nginx的容器,该容器中/etc/nginx/conf.d目录下的文件将与宿主机中/nginx/conf.d目录下的文件保持同步,而/etc/nginx/conf.d是nginx的站点配置文件夹,下面每一个conf配置文件各自对应一个站点。反代的配置也得写在里面。
第四步:
到此你的nginx容器已经创建成功,我们在此修改对应的配置文件即可,例如我现在需要将www.aaa.com的域名路径指向一个容器运行端口号8080上,只需要进入你宿主机中/nginx/conf.d目录中增加一个文件(命令cd /nginx/conf.d),文件名字要求必须为.conf格式,例如可以改名为:www.aaa.com.conf(命令vi www.aaa.com.conf),里面的内容如下(自己修改对应的地方,然后粘贴到vi中,按esc 输入:wq来保存文件):
- 需求:
- 技术:
- 实现:
安装docker,如果你的服务器上还没有相应的docker,可以参考CentOS安装步骤或者Ubuntu 系列安装 Docker步骤进行安装。(请自行google或者使用DaoCloud管理平台)
第二步:
获取nginx镜像,执行命令:
docker pull nginx
第三步:
创建并启动nginx容器,执行命令:
docker run -p 80:80 -v /nginx/conf.d:/etc/nginx/conf.d -d nginx
此时你已经创建了一下名字为nginx的容器,该容器中/etc/nginx/conf.d目录下的文件将与宿主机中/nginx/conf.d目录下的文件保持同步,而/etc/nginx/conf.d是nginx的站点配置文件夹,下面每一个conf配置文件各自对应一个站点。反代的配置也得写在里面。
第四步:
到此你的nginx容器已经创建成功,我们在此修改对应的配置文件即可,例如我现在需要将www.aaa.com的域名路径指向一个容器运行端口号8080上,只需要进入你宿主机中/nginx/conf.d目录中增加一个文件(命令cd /nginx/conf.d),文件名字要求必须为.conf格式,例如可以改名为:www.aaa.com.conf(命令vi www.aaa.com.conf),里面的内容如下(自己修改对应的地方,然后粘贴到vi中,按esc 输入:wq来保存文件):
server { listen 80; server_name www.aaa.com自己域名; location / { proxy_pass http://宿主机ip:容器对外的端口号; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }如果你需要多个域名的配置,只需要在/nginx/conf.d目录下加相应的配置文件即可,一般只需要修改server_name和proxy_pass即可。然后重启nginx容器,即:
docker restart nginx
打开你的域名即可看到效果,当然你得先把域名解析到宿主机的ip上面。
本文来自互联网
正文到此结束
捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
匿名
匿名
匿名
jaz
这个很正常
谢谢建议