linux(Ubuntu)下Vue部署到Nginx上

本文详细记录了在Linux服务器上将Vue项目通过npm build打包并配置Nginx的过程,包括Vue环境安装、打包设置、Nginx安装与配置、跨域处理及端口开放,助您快速完成项目上线。

本博客是总结本人在linux服务器上将vue项目部署到Nginx上的经历

一.准备好vue项目

1.安装vue环境

这部分参考我上篇的博客
https://blog.youkuaiyun.com/rongqwe/article/details/111990401

2.打包vue项目

进入你项目的文件夹,找到config文件夹下的index.js文件(config/index.js),打开修改里面assetsPublicPath为 ./(注意一定是build里面的,dev中也有这个配置,dev里的不用修改)
在这里插入图片描述

3.打包成dist文件

进入项目文件夹,打开命令行输入

npm run build

这时就可以看到文件夹下有个dist文件了,然后把dist丢到服务器上,这里我用xftp丢上去的
在这里插入图片描述

二.在服务器配置Nginx

1.安装Nginx

直接用apt就可以安装了,在linux命令行输入

sudo apt-get install nginx

安装后通过输入nginx -v 可测试是否安装成功
输入

service nginx start

可以启动Nginx服务。
启动后,在网页重输入你服务器ip地址,就可看到Nginx的初始页面。这样nginx安装成功啦
在这里插入图片描述

2.修改nginx的配置文件

进入默认的配置文件路径,修改。
可通过如下命令修改,也可以通过xftp找到该文件修改的,这样个人感觉比较方便

vim /etc/nginx/nginx.conf 

在 http{ } 中配置一个server如下
在这里插入图片描述

注意:跨域问题还是要注意的,如果nginx不进行跨域的配置,虽然项目部署了,也还是访问不了。具体看这个博主的博客https://blog.youkuaiyun.com/weixin_42565137/article/details/90578780

3.开放端口

你项目的端口记得要开放,比如我这里8080端口记得要开放,不然访问不了的啊!!我曾经就是漏了这个弱智操作搞了我好久,具体如何开放端口自己百度吧,不过一些基本的端口,服务器还是默认会自动开放的。

三.访问你的vue项目

然后重启nginx,命令行输入 service nginx restart
现在就应该大功告成啦,在浏览器输入 ip:端口号 ,就可以访问到你的vue项目啦。

<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{网页服务} $$ --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值