Docker安装和配置Nginx

Nginx的作用

  1. 反向代理。举个例子,Nginx监听服务器上的80或443端口,客户端通过域名或ip请求到Nginx,Nginx通过请求的地址根据配置请求到具体的服务,然后将结果返回给客户端。

  2. web服务器。将html,css,js,图片等文件通过nginx配置放在指定的目录下,如果有公网ip,能够实现公网对网页文件的访问。

  3. 负载均衡。nginx可以对请求做一个分发,分发到提供同一功能的多个服务器上,减轻单台服务器的压力。

  4. 黑名单。nginx可以对进来的请求ip做一个限制,在黑名单的ip的会拒绝请求。

  5. 限流。nginx可以限制ip访问的频率。

  6. TCP流量代理。比如代理通过3306端口访问mysql的请求、websocket的请求。

Docker安装Nginx

创建一个docker网络:

docker network create --driver bridge --subnet 172.18.0.1/24 --gateway 172.18.0.1 txb-net
  1. --driver bridge:网络模式为桥接
  2. --subnet:子网范围。24的含义是子网掩码。不能和已存在的docker网络冲突
  3. --gateway:网关地址
  4. txb-net:网络名称。这个值任意

只有指定了子网范围,也就是带了--subnet参数的,才能在创建容器的时候指定ip。

创建网络作用是方便后面启动容器的时候指定ip,如果没有这一步,启动的容器的内网ip都是随机的,不方便管理,有的时候容器间通过内网ip访问,如果是随机生成的ip,在下次启动容器的时候ip会变,导致访问不到。

创建Nginx容器:

因为要挂载Nginx的配置文件和一些数据,所以需要先启一个Nginx容器把默认配置文件复制出来。如果复制出来的文件存放目录不存在,需要提前创建好。注意,

/usr/share/nginx/html/. 后面有一个点,表示复制/usr/share/nginx/html/下的所有文件,不过不加 . ,会把html文件夹复制到/home/txb/docker_data/nginx/html/ 目录下,也就是html文件夹下还有个html文件夹

docker run --name nginx -d nginx
docker cp nginx:/etc/nginx/nginx.conf /home/txb/docker_data/nginx/nginx.conf
docker cp nginx:/etc/nginx/conf.d/default.conf  /home/txb/docker_data/nginx/conf.d/default.conf
docker cp nginx:/usr/share/nginx/html/. /home/txb/docker_data/nginx/html/

默认配置文件拷贝出来后,这个容器就可以删除了

docker stop nginx
docker rm nginx

重新启动一个Nginx的容器,指定网络和ip,并挂载数据

 docker run --name nginx --network txb-net --ip 172.18.0.2 -p 80:80 -p 443:443 -v /home/txb/docker_data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/txb/docker_data/nginx/html:/usr/share/nginx/html -v /home/txb/docker_data/nginx/log:/var/log/nginx -v /home/txb/docker_data/nginx/conf.d:/etc/nginx/conf.d -d nginx

如果此时服务器开通的了80端口,直接访问 http://ip 就可以看到效果

posted @ 2022-05-16 00:34  hxh奔跑的春风  阅读(471)  评论(0编辑  收藏  举报