Linux服务器nginx部署Vue前端(详细版)

提示:适用于前后端项目的部署


前言

搜索到这篇文章想必你已经对Nginx比较了解,我也不对Nginx进行介绍赘述了,只需要明白Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器。下面我将直接介绍如何在Nginx部署前端文件的整个流程。


一、打包前端文件

打包前端文件,打开前端包管理器,使用

npm run build 

打包该项目,打包完成可以发现项目中多了个dist文件夹

二、下载和部署Nginx

这一步可以参考我之前写的点击这里

三、配置conf文件

这一步是重中之重,打开winscp,当然你有更好的也行(只要支持SSH的SFTP文件传输),人话就是能够支持文件上传服务器或编辑服务器文件内容,打开nginx目录下的conf文件夹找到,nginx.conf文件,双击打开。

server {
        listen       80;#nginx监听端口
        server_name  localhost;#指定了本机的域名或主机名
        location / {
            root   /home/dist/;#前端应用程序的根目录
            index  index.html;
        }

在原有基础上http { } 内容中加入上述内容。注意这些都要一 一对应,举个例子需求是在190.21.3.1服务器40端口部署前端,前端文件放在home文件下

server {
        listen       40;#nginx监听端口
        server_name  190.21.3.1;#指定了本机的域名或主机名
        location / {
            root   /home/dist/;#前端应用程序的根目录
            index  index.html;
        }

注意把前端打包后的dist放到root中路径指定文件夹下。

启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

启动nginx即可,如果nginx已经启动可参考我上面的文章,先关闭再启动,或直接使用重启指令即可。
在这里插入图片描述

<think>好的,用户问如何在Linux服务器部署Vue前端项目。我需要先理清步骤,确保每个环节都正确。首先,用户可能对VueLinux的基本操作有一定了解,但可能需要详细的指导。 首先,项目打包是必须的。用户可能知道npm run build,但需要确认他们是否安装了依赖,否则构建会失败。这里要提醒他们先安装依赖,再构建。生成的dist目录是关键,需要正确上传到服务器。 接下来是服务器环境的配置。用户可能使用Nginx或者Apache,但Nginx更常见,所以重点放在Nginx上。要说明如何安装Nginx,以及配置文件的修改。比如创建新的server块,指定root目录为dist的内容,设置try_files处理路由问题,特别是Vue的路由模式可能需要history模式的支持。 然后是上传文件的方法,用户可能不熟悉scp或者rsync,需要简单介绍这些命令,或者建议使用FTP工具,这样更友好。特别是dist目录需要整个上传,路径不能错。 权限设置也是容易忽略的点,确保Nginx用户(比如www-data)有权限读取dist文件,可能需要chmod或chown命令。这部分用户可能不太熟悉,需要具体说明。 最后是HTTPS,现在很多项目都需要SSL证书,可以通过Let's Encrypt获取,用Certbot自动化配置。这部分可能稍微复杂,但用户如果有域名的话,可能需要这一步,所以要简要说明。 还要考虑测试步骤,比如重启Nginx服务,检查防火墙设置,是否有端口开放(80、443),以及可能的错误排查,比如查看Nginx日志。 可能用户会遇到的问题包括:构建失败,路径配置错误,权限问题,路由刷新404,或者SSL证书安装问题。需要提醒常见错误和解决方法,比如检查Nginx配置语法,确认dist文件位置,路由配置是否正确等。 另外,是否需要使用PM2或者其他进程管理?不过Vue是静态文件,可能不需要,除非有服务器端渲染。但用户的问题可能只是纯前端部署,所以可以忽略这部分。 总结步骤应该是:构建项目→上传到服务器→配置Web服务器→处理路由和SSL→测试。确保每个步骤清晰,用户能一步步跟随操作。同时使用代码块显示命令,方便复制,比如npm install,scp命令,nginx配置片段等。 需要避免使用复杂术语,保持说明简洁,特别是针对可能刚入门的开发者。同时,检查是否有遗漏的步骤,比如服务器更新,安装Node.js等,但可能用户已经有环境,所以可以假设他们已经准备好。不过如果有必要,可以提醒他们先安装Node.js和npm。 最终整理成一个结构化的回答,分步骤说明,每个步骤详细但不过于冗长,确保用户能顺利部署。</think>在 Linux 服务器部署 Vue 前端项目的完整步骤如下: ### 一、本地项目准备 1. 构建生产本 ```bash npm install # 安装依赖(若未安装) npm run build # 生成打包文件到 dist/ 目录 ``` 此时会生成 `dist` 文件夹,包含所有静态资源文件(HTML/CSS/JS) --- ### 二、服务器环境配置 #### 方式一:Nginx 部署(推荐) 1. 安装 Nginx ```bash sudo apt update sudo apt install nginx -y ``` 2. 配置站点文件 新建配置文件 `/etc/nginx/sites-available/vue-app`,内容示例: ```nginx server { listen 80; server_name your-domain.com; # 替换为实际域名或IP root /var/www/vue-app/dist; # 指向打包文件目录 index index.html; location / { try_files $uri $uri/ /index.html; # 解决 Vue Router history 模式404问题 } } ``` 3. 启用配置 ```bash sudo ln -s /etc/nginx/sites-available/vue-app /etc/nginx/sites-enabled/ sudo nginx -t # 验证配置语法 sudo systemctl reload nginx ``` --- #### 方式二:Apache 部署 1. 安装 Apache ```bash sudo apt install apache2 -y ``` 2. 配置虚拟主机 编辑 `/etc/apache2/sites-available/vue-app.conf`: ```apache <VirtualHost *:80> ServerName your-domain.com DocumentRoot /var/www/vue-app/dist <Directory /var/www/vue-app/dist> AllowOverride All Require all granted </Directory> </VirtualHost> ``` 3. 启用配置 ```bash sudo a2enmod rewrite sudo a2ensite vue-app sudo systemctl restart apache2 ``` --- ### 三、上传项目文件 1. 使用 SCP 上传(本地执行) ```bash scp -r dist/ user@your-server:/var/www/vue-app/ ``` 2. 设置文件权限 ```bash sudo chown -R www-data:www-data /var/www/vue-app # Nginx sudo chown -R www-data:www-data /var/www/vue-app # Apache ``` --- ### 四、进阶配置 1. 启用 HTTPS(以 Let's Encrypt 为例) ```bash sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx # 按提示操作 ``` 2. 配置自动续期证书 ```bash sudo crontab -e # 添加:0 12 * * * /usr/bin/certbot renew --quiet ``` --- ### 五、验证部署 1. 访问测试 通过浏览器访问 `http(s)://your-domain.com` 2. 检查错误日志 ```bash # Nginx tail -f /var/log/nginx/error.log # Apache tail -f /var/log/apache2/error.log ``` --- ### 常见问题排查 1. **白屏问题**:检查资源路径是否正确,可尝试在 `vue.config.js` 添加: ```javascript module.exports = { publicPath: './' } ``` 2. **路由404**:确保 Web 服务器正确配置了 history fallback 3. **权限问题**:使用 `ls -l /var/www/` 检查目录归属 4. **端口占用**:使用 `sudo lsof -i:80` 检查端口监听情况 部署完成后,建议设置自动化部署流程(如 GitHub Actions + rsync)提升后续更新效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值