Docker安裝Nginx實現反向代理

一、配置文件

    以前的配置文件爲一個nginx.conf,新的版本將其分成了兩個,default.conf 和 nginx.conf,爲通過數據卷映射的方式,但沒有在github上找到分開的這兩個文件,因此先通過直接運行的方式得到這兩個文件。

  1. 先普通方式運行一個nginx容器
    docker run --name my-nginx -p 80:80 -d nginx
    注:阿里雲的80端口被佔用了,因此要把原有的kill 掉。查看端口pid:netstat -tanlp ,殺掉進程:kill 進程pid
  2. 進入容器,將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

  1. 方式一:通過Docker重啓容器:修改的配置文件會生效 docker stop IDdocker start ID
  2. 方式二:在nginx容器內(/usr/local/sbin/)通過nginx -s reload重新加載配置的方式容器會直接停止,然後重新 docker start ID 啓動即可。

這樣,當我們直接訪問nginx所在服務器的ip(由於是80端口),即可直接訪問到代理服務器。

  
  
Email : [email protected]
Website : http://beyonderwei.com
  
WeChat:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章