使用docker部署nginx&&发布Vue前端

搭建nginx服务器
  • 查看本地是否存在可用的nginx镜像
    在这里插入图片描述

    如果本地没有nginx镜像,直接docker pull nginx 拉取镜像

  • 尝试启动nginx,将nginx镜像启动为一个容器

    docker run --name nginx-scene02 -p 8034:80 -d nginx
    

    启动后在window 浏览器输入 虚拟机ip:端口号 测试是否能正常启动nginx,如下为启动成功截图

在这里插入图片描述

  • 使用docker ps 命令查看启动容器的容器id,如下查看到的容器ID为(c9dd5fa6b6a7)
    在这里插入图片描述

  • linux主机随便找个目录创建三个文件夹
    在这里插入图片描述

    我在本地data目录下创建了nginx-scene文件夹,文件夹下创建三个文件(conf、logs、www)

  • 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,可先进入容器内查看容器内配置文件存放路径等情况

    docker exec -it 容器ID bash
    

在这里插入图片描述
拷贝容器内配置文件到本地已经建好的文件夹conf内

docker cp 容器id:/etc/nginx/conf.d/default.conf nginx-scene/conf/

如上命令中的nginx-scene/conf/ 为本地创建的conf目录地址,根据你当前所在目录去写这个conf的地址

  • 停止nginx容器并删除容器

    docker stop c9dd5fa6b6a7 //先停止容器
    docker rm c9dd5fa6b6a7	//删除容器
    //启动容器
    sudo docker run -p 8034:80 -d --name nginx-scene -v /data/nginx-scene/www:/usr/share/nginx/html -v /data/nginx-scene/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx-scene/logs:/var/log/nginx nginx
    

    命令说明:

    -p 将容器80端口映射到主机8034端口

    –name 给容器命名:nginx-scene

    -d 后台启动

    -v 本地创建的目录挂载到容器内目录

    -v /data/nginx-scene/www:/usr/share/nginx/html
    -v /data/nginx-scene/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf
    -v /data/nginx-scene/logs:/var/log/nginx nginx
    
    -v 本地文件目录:容器内目录
    

    启动成功后,在本地www目录下创建index.html文件测试浏览器能否正常看到改文件内容
    在这里插入图片描述
    测试截图:
    在这里插入图片描述
    至此,你已经搭建完nginx服务器

发布vue前端项目
  • 将前端项目打包成dist.zip包并上传到虚拟机www文件夹下,unzip解压(打包方法和上传不做赘述)

  • 进入nginx配置文件配置代理

    vi /data/nginx-scene/conf/nginx.conf/nginx.conf
    

    原配置文件如下

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    }
    
    

    配置代理

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

    完整配置文件

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/conf.d/*.conf;
    
    server {
        listen 8033;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
    
    
    }
    
    

    配置代理需要注意

    1. 正确的格式应该为 http {

      server {}

    }

    1. 修改完配置文件重启容器 docker restart 容器ID

    注意:

    1. 监听端口为80映射端口,即为启动容器是80端口映射为8033

    2. root 地址为docker容器内nginx存放html文件,即为localhost:端口启动时,前端请求到的html文件地址,可以进容器内进行查看

      [root@hadoop01 nginx.conf]# docker exec -it c9dd5fa6b6a7 bash
      root@c9dd5fa6b6a7:/# cd /d
      dev/                  docker-entrypoint.d/  docker-entrypoint.sh
      root@c9dd5fa6b6a7:/# cd /usr/share/
      root@c9dd5fa6b6a7:/usr/share# ls
      X11              bug              dict        fonts  keyrings  maven-repo  pam-configs  sensible-utils  zoneinfo
      adduser          ca-certificates  doc         gcc    libc-bin  menu        perl5        tabset          zsh
      base-files       common-licenses  doc-base    gdb    lintian   misc        pixmaps      terminfo
      base-passwd      debconf          dpkg        info   locale    nginx       polkit-1     ucf
      bash-completion  debianutils      fontconfig  java   man       pam         readline     xml
      root@c9dd5fa6b6a7:/usr/share# cd nginx/html/
      root@c9dd5fa6b6a7:/usr/share/nginx/html# ls
      50x.html  index.html
      root@c9dd5fa6b6a7:/usr/share/nginx/html# pwd
      /usr/share/nginx/html
      

      测试请求发布前端地址
      在这里插入图片描述

至此完结撒花!!!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐