一、配置文件
以前的配置文件为一个nginx.conf,新的版本将其分成了两个,default.conf 和 nginx.conf,为通过数据卷映射的方式,但没有在github上找到分开的这两个文件,因此先通过直接运行的方式得到这两个文件。
- 先普通方式运行一个nginx容器
docker run --name my-nginx -p 80:80 -d nginx
注:阿里云的80端口被占用了,因此要把原有的kill 掉。查看端口pid:netstat -tanlp
,杀掉进程:kill 进程pid
。 - 进入容器,将default.conf 和 nginx.conf两个文件复制到宿主机。
将容器中的文件拷贝到宿主机:docker cp 容器ID:容器内文件路径 宿主机路径
,(注:命令在宿主机中执行,冒号前后没有空格)。二、通过宿主机的配置文件启动
命令:docker run --name my-nginx -p 80:80 -v /xxx/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /xxx/mynginx/conf/default.conf:/etc/nginx/conf.d/default.conf -d nginx
说明:
- -v:数据卷绑定(将宿主机的配置文件,与容器内配置文件进行绑定)
- 注:还可以绑定log等其他文件
三、反向代理
打开 default.conf ,如我们部署在tomcat /webapps/xxx/下的项目,配置如下:重启nginx:1
2
3
4
5location / {
root html;
proxy_pass http://你的ip:8080/xxx/;
index index.html index.htm;
}
- 方式一:通过Docker重启容器:修改的配置文件会生效
docker stop ID
,docker start ID
。 - 方式二:在nginx容器内(/usr/local/sbin/)通过
nginx -s reload
重新加载配置的方式容器会直接停止,然后重新docker start ID
启动即可。
这样,当我们直接访问nginx所在服务器的ip(由于是80端口),即可直接访问到代理服务器。
...
...
00:00
00:00
本文为作者原创文章,未经作者允许不得转载。