nginx 发布vue项目

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

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中)

<think>我们正在处理用户关于在Linux系统上使用Nginx运行Vue项目的询问。根据之前的对话历史,用户已经询问过关于解压tar.gz文件的问题,但现在的问题转向了部署Vue项目。我们需要参考提供的引用内容来构建答案。 引用内容摘要: - 引用[1]:介绍了使用docker+nginx发布Vue项目的基本步骤,包括打包Vue项目。 - 引用[2]:详细说明了在Linux服务器上用Nginx部署Vue项目的步骤,包括安装Nginx、配置nginx.conf等。 - 引用[3]:展示了在Ubuntu环境下使用Docker安装Nginx并运行Vue项目的命令,重点在于挂载配置和静态文件。 - 引用[4]:提到了部署SpringBoot+Vue分离项目,并给出了Nginx的启动和重载配置命令。 - 引用[5]:说明了如何配置nginx.conf文件来反向代理后端API(如SpringBoot应用)。 用户需求:在Linux系统上使用Nginx运行Vue项目。 部署步骤通常包括: 1. 打包Vue项目(生成dist目录) 2. 安装Nginx 3. 配置Nginx(将dist目录作为静态资源服务,并配置反向代理以解决跨域问题) 4. 启动或重载Nginx 考虑到用户可能有不同的环境(直接使用宿主机Nginx或使用Docker),我们将分别介绍两种方式。 ### 回答结构: 1. **打包Vue项目**:使用npm run build生成dist目录。 2. **安装Nginx**:在Linux系统上安装Nginx。 3. **配置Nginx**:将打包好的dist目录部署到Nginx,并配置反向代理(如果需要连接后端API)。 4. **启动Nginx服务**:启动并确保Nginx运行。 5. **使用Docker部署(可选)**:提供Docker方式的部署方法。 注意:将引用内容自然地融入步骤中,并在末尾添加引用标识。 同时,根据用户之前的提问,生成相关问题。 ### 详细步骤: #### 一、打包Vue项目Vue项目根目录下执行: ```bash npm run build ``` 成功后会生成`dist`目录,包含静态文件(HTML、CSS、JS等)[^1][^2]。 #### 二、安装NginxLinux系统中安装Nginx(以Ubuntu为例): ```bash # 更新软件包列表 sudo apt update # 安装Nginx sudo apt install nginx -y # 启动Nginx服务 sudo systemctl start nginx # 设置开机自启 sudo systemctl enable nginx ``` 验证安装:访问服务器IP,出现Nginx欢迎页即成功[^2]。 #### 三、配置Nginx部署Vue项目 1. **将dist目录复制到Nginx的默认静态文件目录**(通常为`/var/www/html`): ```bash sudo cp -r dist/* /var/www/html/ ``` 2. **修改Nginx配置文件**(通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/default`): ```bash sudo vi /etc/nginx/sites-available/default ``` 修改server块中的root指向静态文件目录: ```nginx server { listen 80 default_server; root /var/www/html; # 确保这里是dist目录的内容所在路径 index index.html index.htm; location / { try_files $uri $uri/ /index.html; # 支持Vue的路由模式 } # 配置反向代理解决跨域(若需要连接后端API) location /api/ { proxy_pass http://localhost:8089/; # 替换为实际后端地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 注意:如果后端服务在其他服务器,请修改`proxy_pass`的地址[^5]。 3. **检查配置并重载Nginx**: ```bash sudo nginx -t # 检查配置文件语法 sudo nginx -s reload # 重载配置 ``` #### 四、验证部署 浏览器访问服务器IP或域名,查看Vue项目是否正常运行。 #### 五、使用Docker部署(可选) 对于使用Docker的环境,可参考以下步骤: 1. 创建Nginx配置文件目录(如`/home/zxl/nginx/conf`)和静态文件目录(如`/home/zxl/nginx/html`)[^3]。 2. 将打包好的`dist`目录内容复制到静态文件目录(`/home/zxl/nginx/html`)。 3. 创建自定义的nginx配置文件(如`nginx.conf`和`conf.d/default.conf`),配置同上(注意root路径为容器内的`/usr/share/nginx/html`)。 4. 运行Docker容器: ```bash docker run -d \ -p 80:80 \ --name nginx \ -v /home/zxl/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/zxl/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /home/zxl/nginx/log:/var/log/nginx \ -v /home/zxl/nginx/html:/usr/share/nginx/html \ nginx:latest ``` ### 常见问题 - **路由问题**:Vue使用history模式时,需要配置`try_files $uri $uri/ /index.html;`[^2]。 - **跨域问题**:通过配置`location /api`反向代理后端API[^5]。 - **权限问题**:确保Nginx用户(通常是www-data)对静态文件目录有读取权限。 ### 生成相关问题 根据用户可能进一步询问的问题,生成以下相关问题: 1. 如何解决Vue项目部署后刷新页面出现404的问题? 2. 如何为Nginx配置HTTPS证书? 3. Vue项目如何配置环境变量以适应不同部署环境? 4. 如何使用PM2管理Node.js后端服务? </think>### Linux系统使用Nginx部署Vue项目详细指南 #### 一、项目打包 1. **构建Vue项目** 在项目根目录执行: ```bash npm run build ``` 生成`dist`目录(包含所有静态资源文件)[^1][^2] #### 二、Nginx安装配置 1. **安装Nginx** ```bash sudo apt update && sudo apt install nginx -y ``` 2. **启动Nginx服务** ```bash sudo systemctl start nginx sudo systemctl enable nginx # 设置开机自启 ``` 3. **部署静态文件** 复制dist目录到Nginx默认目录: ```bash sudo cp -r dist/* /var/www/html/ ``` #### 三、Nginx关键配置 1. **修改配置文件** ```bash sudo vi /etc/nginx/sites-available/default ``` 添加核心配置: ```nginx server { listen 80; root /var/www/html; # Vue静态文件路径 index index.html; location / { try_files $uri $uri/ /index.html; # 支持Vue路由 } # 反向代理API请求(连接后端) location /api/ { proxy_pass http://localhost:8089/; # SpringBoot后端地址 proxy_set_header Host $host; } } ``` [^5][^2] 2. **验证并重载配置** ```bash sudo nginx -t # 检查配置语法 sudo nginx -s reload # 重载配置无需重启 ``` [^4] #### 四、Docker部署方案(替代原生安装) ```bash docker run -d \ -p 80:80 \ --name nginx-vue \ -v /path/to/dist:/usr/share/nginx/html \ # 挂载Vue静态文件 -v /path/to/nginx.conf:/etc/nginx/nginx.conf \ # 挂载配置文件 nginx:latest ``` [^3] #### 五、验证与访问 1. **检查服务状态** ```bash systemctl status nginx # 原生安装 docker ps # Docker安装 ``` 2. **浏览器访问** ``` http://服务器IP ``` #### 六、常见问题解决 - **路由404问题**:确保配置中包含`try_files $uri $uri/ /index.html;` - **API连接失败**:检查后端服务状态和`proxy_pass`地址[^5] - **权限问题**: ```bash sudo chown -R www-data:www-data /var/www/html ``` > 部署流程图: > $$ \text{Vue项目} \xrightarrow{\text{build}} \text{dist目录} \xrightarrow{\text{复制}} \text{Nginx根目录} \xrightarrow{\text{配置}} \text{网页服务} $$ --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值