nginx 发布vue项目

本文详细介绍了如何使用uni-app打包Vue项目并部署到服务器,包括修改nginx配置文件,使用root和alias的区别,以及如何实现多项目部署。通过实例展示了nginx.conf的配置步骤,如端口设置、location配置等,帮助读者理解并掌握Vue项目在Nginx服务器上的正确部署方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、打包VUE项目,这里用uni-app做例子

打包成功后,复制到服务器。我的项目目录是/usr/local/soft/nginx-web/micro-mall-h5

2、进入nginx安装目录下的 conf/nginx.conf文件修改相关配置

listen  配置端口这里默认是80
修改location内容 当访问http://localhost:80时会先访问到“/” 接着去查找root对应的路径中的文件,找到执行启动页 index.html
       root  是项目指向的地址 /usr/local/soft/nginx-web/micro-mall-h5

       index 打包文件首页

3、配置完成后 执行sbin下的命令

     ./nginx -s reload  #重新载入nginx.conf配置文件

     ./nginx -s stop   #停止nginx  

     ./nginx  #启动nginx   

此时直接访问 http://ip  即可直接访问项目。

 

如果需要带项目名称部署,需要重新打包如下

上传到服务器目录  我这里上传到 /usr/local/soft/nginx-web/mall

修改nginx.conf文件如下,注意这里我把root换成了alias

然后执行 ./nginx -s reload     ./nginx -s stop   ./nginx 三个命令使配置生效,并重启nginx.

http://ip******/mall即可访问项目。

至此完成OK ,同时也实现了nginx下多项目的部署,如需再加项目直接添加location配置即可。如果需要新增端口,添加整个server配置

****location下root和alias区别****

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~

root示例如:

location /test {
            root    /usr/local/soft/nginx-web/;
            index  index.html index.htm;
        }

如果一个请求的URI是/test/index.html时,web服务器将会返回服务器上的/usr/local/soft/nginx-web/test/index.html的文件。这里root后面无需指定test目录即可,nginx会在root后拼上location路径

alias实例:

location /test  {
            alias  /usr/local/soft/nginx-web/mall_test/;
            index  index.html index.htm;
        }

如果一个请求的URI是/test/index.html时,web服务器将会返回服务器上的/usr/local/soft/nginx-web/mall_test/index.html的文件。注意这里是mall_test,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

注意:

1. 使用alias时,目录名后面一定要加"/"
3. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
4. alias只能位于location块中。(root可以不放在location中)

### 如何配置 Nginx 运行 Vue 项目 为了在 Nginx 上成功运行 Vue 项目,需要完成以下几个方面的配置: #### 1. 打包 Vue 项目 在部署之前,需将 Vue 项目打包成静态资源文件。这可以通过执行 `npm run build` 命令实现。完成后,在项目的根目录下会生成一个名为 `dist` 的文件夹,其中包含了所有的静态资源文件以及入口 HTML 文件 `index.html`。 ```bash npm run build ``` 确保该命令执行无误,并验证 `dist/index.html` 是否能够正常加载[^2]。 --- #### 2. 安装并启动 Nginx 如果尚未安装 Nginx,请按照官方文档或系统特定的方式进行安装。对于 Windows 用户,可以直接下载预编译版本;而对于 Linux 用户,则可通过包管理器(如 apt 或 yum)安装。 安装完毕后,启动 Nginx 并确认其是否正常工作。可以在浏览器中访问 `http://localhost` 来检查默认欢迎页面是否显示。或者通过以下命令验证进程状态: ```bash tasklist /fi "imagename eq nginx.exe" ``` 此操作适用于 Windows 系统下的用户[^3]。 --- #### 3. 修改 Nginx 配置文件 进入 Nginx 的配置目录,默认路径通常为 `/etc/nginx/nginx.conf` 或 `/usr/local/nginx/conf/nginx.conf`。创建一个新的配置文件或将现有配置更新如下所示的内容: ```nginx server { # 设置监听端口 listen 80; # 主机名称 server_name localhost; # 指定 Vue 项目打包后的 dist 文件夹位置 location / { root /path/to/your/project/dist; index index.html index.htm; # 启用自动索引功能 autoindex on; # 处理单页应用中的路由问题 try_files $uri /index.html; } # 跨域请求处理 (如果有 API 接口需求) location /api/ { proxy_pass http://localhost:3000/; } } ``` 注意:将 `root` 中的路径替换为你实际的 `dist` 文件夹所在的位置。例如,如果你的项目存放在 `/var/www/vue-app/dist`,则应将其改为 `root /var/www/vue-app/dist;`[^4]。 --- #### 4. 测试与重启 Nginx 保存更改后的配置文件,并测试语法是否有错误: ```bash nginx -t ``` 如果没有发现问题,重新加载 Nginx 配置使其生效: ```bash nginx -s reload ``` 此时,打开浏览器访问 `http://localhost` 即可看到已部署成功的 Vue 应用程序[^1]。 --- #### 5. 可选扩展——支持多端口或多路径 假如存在多个子模块或接口服务,可以进一步优化配置以适配不同场景。比如下面的例子展示了如何针对不同的 URL 请求转发至指定端口上的微服务实例: ```nginx location ^~/imageapi { charset utf-8; proxy_pass http://example.com:8093; rewrite ^/imageapi/(.*)$ /$1 break; client_max_body_size 100M; } ``` 这里的关键在于正则表达式的定义方式 (`^~`) 和重写规则的应用[^5]。 --- ### 总结 综上所述,从打包 Vue 项目到调整 Nginx 配置直至最终上线整个流程都已被覆盖。只要严格按照上述指导实施每一步骤,就能顺利完成目标设定的任务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值