docker部署nginx以及使用静态资源缓存与反向代理

既然要使用docker部署nginx,在这里先介绍一些命令

nginx相关命令

(1)启动:start nginx.exe

(2)停止:nginx.exe -s stop

重新加载:nginx.exe -s reload

docker相关命令

(1)搜索镜像:docker search镜像名称

(2)拉取镜像:docker pull镜像名称

(3)查看镜像:docker images

(4)删除镜像:docker rmi镜像名称(镜像id)

(5)删除镜像:docker rmi docker images -q

(6)查看当前正在运行的容器:docker ps

(7)查看所有容器:docker ps -a

(8)创建容器命令: docker run

  表示运行容器
  -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
  --name :为创建的容器命名。
  -V:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
  -d:在run后面加上-d参数则会创建一个守护式容器在后 台运行(这样创建容器后不会自动登录容器,如果只加-i-t两个参数,创建后就会自动进去容器)。
  -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
 

  交互式方式创建容器:docker run -it --name=容器名称 镜像名称:标签 /bin/bash
  守护式方式创建容器:docker run -di --name=容器名称 镜像名称:标签

(9)进入容器:docker exex -it容器名称(或者容器id) /bin/bash

(10)退出容器:exit

(11)启动容器:docker start容器名称(或者容器id)

(12)停止容器:docker stop容器名称(或者容器id)

接下来就开始吧

容器创建(目录挂载)

$ docker run --name=mynginx -p 80:80 -v /resource/html:/usr/share/nginx/html \
-v /resource/conf.d:/etc/nginx/conf.d -d nginx

  • nginx服务器静态资源目录: /usr/share/nginx/html
  • nginx 配置文件目录: /etc/nginx/conf.d

通过目录挂载将静态资源目录,以及配置文件目录映射到宿主机(本服务器),但是此时是不能运行的,因为配置文件目录下此时是空的,创建如下:

$ vi /resource/conf.d/default.conf

#复制下面的server到配置文件中(如下是最基本的,之后要加跨域等自行加载)

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

更新nginx配置

创建完 nginx 的配置文件之后,我们要让配置生效, 必须让 nginx 加载conf.d 目录下面的配置.

$ docker exec -it mynginx /etc/init.d/nginx reload

到这里记得你的html下还是没有文件的,添加index.html就好了

配置反向代理

在映射的配置文件目录下下创建一个.conf 的配置就可以了

$ vi /resource/conf.d/gogo.conf

#复制下面的server到配置文件中

server {
    listen 80;
    server_name 域名;    # 把域名替换成你自己的
    location / {
    proxy_redirect off;  
        proxy_set_header Host $host;  
        proxy_set_header X-Real-IP $remote_addr;  
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_pass http://ip:port;      # 这里设置你要代理的ip+端口
      }
}

到这里基本上就结束了,如果想深入了解docker
就点这个把---->Docker — 从入门到实践

你可能感兴趣的:(部署)