使用nginx部署vue项目

一、安装nginx

容器化技术是现在的一大热门,所以为了学习容器化工具,选择使用docker-compose来安装nginx。

1、docker-compose安装nginx

关于docker及docker-compose的安装,可参考另一篇文章
docker-compose部署es集群并设置密码
也可以直接参考官网进行安装
docker官网

创建nginx目录

mkdir -p /home/nginx/conf
mkdir -p /home/nginx/conf.d
mkdir -p /home/nginx/html
mkdir -p /home/nginx/logs

docker-compose配置文件

nginx.yml

version: '3.9' # docker-compose当前最新版本
services: 
  nginx: 
    restart: always 
    image: nginx # 镜像,可指定版本,比如nginx:版本号
    container_name: nginx # 容器名
    ports:
      - 80:80
      - 443:443
    volumes: # 宿主机与容器路径映射
      - /home/nginx/conf:/etc/nginx/conf # 存放nginx.conf
      - /home/nginx/log:/var/log/nginx # 日志
      - /home/nginx/conf.d:/etc/nginx/conf.d # server配置
      - /home/nginx/html:/usr/share/nginx/html # 项目

nginx配置文件

nginx.conf(参考的菜鸟教程进行配置的)

########### 每个指令必须有分号结束。#################
user nobody;  #配置用户或者组,默认为nobody nobody。
worker_processes 2;  #允许生成的进程数,默认为1
pid /var/run/nginx.pid;   #指定nginx进程运行文件存放地址
error_log /var/log/nginx/error.log info;  #制定日志路径,级别。这个设置可以放入全局块
,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}
http {
    include       /etc/nginx/mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志    
    log_format myFormat '$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 myFormat;  #combined为日志格式的默认值
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即>不设上限。
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

    include /etc/nginx/conf.d/*.conf
}

注意:这里面配置的路径全是宿主机的映射路径

default.conf

server {
    listen       80;
    server_name  127.0.0.1;

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

2、启动nginx

cd /home/nginx
docker-compose -f nginx.yml up -d #初次启动
# 几个常用的docker命令
docker start nginx #启动
docker restart nginx #重启
docker stop nginx #停止
docker rm nginx #删除
docker logs -f nginx #查看日志
docker exec -it nginx /bin/bash #进入容器

3、项目打包

默认已经安装node.js

npm run build

将打好的文件夹(如果没改动一般是dist文件夹),上传到服务器/home/nginx/html目录中(这个路径和配置的路径最好一致)。

4、nginx部署

上传好之后,修改default.conf配置文件

server {
   listen       80;
    server_name  服务器IP;

    # 拦截 /vueProject
    location /vueProject {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

注意:
将dist目录改为vueProject,不然会找不到文件。
因为使用nginx访问静态资源时,路径名要和实际路径名匹配(root路径+location路径,意思是nginx是按照/usr/share/nginx/html/vueProject这个路径去寻找资源)
自己在部署时,就因为这里没改,一直显示404,找不到文件。

以上操作弄好之后,重启nginx,就能访问vue项目了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值