Docker安装Nginx实现反向代理

Posted by Beyonderwei on 2020-02-15
Words 445 and Reading Time 1 Minutes
Viewed Times

一、配置文件

    以前的配置文件为一个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/下的项目,配置如下:
    1
    2
    3
    4
    5
    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端口),即可直接访问到代理服务器。


本文为作者原创文章,未经作者允许不得转载。

...

...

00:00
00:00