一、配置文件
以前的配置文件爲一個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/下的項目,配置如下:
location / {
root html;
proxy_pass http://你的ip:8080/xxx/;
index index.html index.htm;
}
重啓nginx:
- 方式一:通過Docker重啓容器:修改的配置文件會生效
docker stop ID
,docker start ID
。 - 方式二:在nginx容器內(/usr/local/sbin/)通過
nginx -s reload
重新加載配置的方式容器會直接停止,然後重新docker start ID
啓動即可。
這樣,當我們直接訪問nginx所在服務器的ip(由於是80端口),即可直接訪問到代理服務器。
Email : [email protected]
Website : http://beyonderwei.com
WeChat: