nginx部署前端vue项目完整详细指南

 更新时间:2025年09月19日 10:17:22   作者:程序员小羊!  
在使用Nginx部署前端Vue项目时,需要确保项目的生产环境版本已经打包,并且Nginx已经安装并配置在服务器上,下面我们来看看具体步骤吧

前言

在使用Nginx部署前端Vue项目时,确保项目的生产环境版本已经打包,并且Nginx已经安装并配置在服务器上。以下是详细的步骤,包括打包Vue项目、配置Nginx、部署和测试项目。

1. 打包Vue项目

首先,你需要将Vue项目编译为生产环境版本。可以通过Vue CLI完成这一步。

1.1 安装依赖

确保已经安装了Node.js和npm。然后在项目根目录下运行以下命令安装依赖:

npm install

1.2 编译项目

在项目根目录中,运行以下命令来编译项目:

npm run build

此命令会在项目根目录下生成一个dist文件夹,里面包含了所有的静态文件,包括HTML、JavaScript、CSS和图片等资源。dist文件夹是用于部署到服务器上的内容。

2. 安装Nginx

如果Nginx还没有安装,可以通过以下命令安装:

2.1 Ubuntu/Debian 系统

sudo apt-get update
sudo apt-get install nginx

2.2 CentOS/RHEL 系统

sudo yum update
sudo yum install nginx

安装完成后,启动Nginx:

sudo systemctl start nginx

并将其设置为开机自启:

sudo systemctl enable nginx

3. 配置Nginx

现在需要配置Nginx以便为Vue项目提供服务。配置文件通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/目录下。

3.1 创建Nginx配置文件

可以在/etc/nginx/sites-available/目录下创建一个新的配置文件。例如,创建my-vue-app配置文件:

sudo nano /etc/nginx/sites-available/my-vue-app

在这个文件中,添加以下内容:

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/my-vue-app/dist;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|otf)$ {
        expires max;
        log_not_found off;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

上述配置内容解释如下:

  • listen 80;:指定服务器监听80端口。
  • server_name your_domain_or_ip;:将your_domain_or_ip替换为你的域名或IP地址。
  • root /var/www/my-vue-app/dist;:指定静态文件的根目录,这里设置为你之前打包的dist文件夹路径。
  • index index.html;:指定默认加载的文件。
  • location / { try_files $uri $uri/ /index.html; }:该部分确保了Vue的路由能够正确工作。Nginx将尝试加载请求的文件,如果找不到,将始终返回index.html,以便由Vue路由处理。
  • location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|otf)$ { expires max; log_not_found off; }:该部分用于设置静态资源的缓存,提高加载速度。

3.2 启用配置文件

保存并关闭文件后,需要创建一个符号链接使配置文件生效:

sudo ln -s /etc/nginx/sites-available/my-vue-app /etc/nginx/sites-enabled/

3.3 测试并重启Nginx

在启用新的配置之前,建议测试Nginx配置文件的语法是否正确:

sudo nginx -t

如果语法无误,重启Nginx以应用配置:

sudo systemctl restart nginx

4. 部署Vue项目

4.1 将打包文件上传到服务器

通过SFTP、SCP或其他文件传输工具,将dist文件夹上传到服务器上。建议将文件夹放在/var/www/my-vue-app/目录下:

scp -r dist/ user@your_server_ip:/var/www/my-vue-app/

4.2 设置文件权限

确保Nginx对项目文件有读取权限:

sudo chown -R www-data:www-data /var/www/my-vue-app
sudo chmod -R 755 /var/www/my-vue-app

5. 配置SSL(可选)

如果你需要为网站配置SSL(推荐使用HTTPS),可以通过Let’s Encrypt免费获取SSL证书并配置在Nginx上。

5.1 安装Certbot

Certbot是一个方便获取Let’s Encrypt SSL证书的工具。

sudo apt-get install certbot python-certbot-nginx

5.2 获取证书并配置Nginx

运行以下命令获取SSL证书并自动配置Nginx:

sudo certbot --nginx -d your_domain_or_ip

Certbot将会生成SSL证书,并修改Nginx配置文件使其使用HTTPS。

5.3 自动更新证书

Let’s Encrypt的证书有效期为90天,因此建议设置自动更新。可以通过添加定时任务来实现:

echo "0 3 * * * /usr/bin/certbot renew --quiet" | sudo tee -a /etc/crontab > /dev/null

这个任务会在每天凌晨3点运行Certbot以更新证书。

6. 测试部署

最后,打开浏览器,访问你的域名或IP地址,检查是否能够正确加载你的Vue项目。检查控制台和网络请求,确保所有静态资源加载正常,没有错误。

如果遇到404错误或其他问题,检查Nginx配置中的try_files指令,确保它指向index.html,以便由Vue处理路由。

7. 总结

通过以上步骤,你可以在Nginx服务器上成功部署Vue项目。这个过程包括打包Vue项目、配置Nginx、部署和测试等关键环节。Nginx作为一个高性能的Web服务器,能够高效地服务于前端应用,结合SSL配置,还能为你的用户提供安全的访问环境。

到此这篇关于nginx部署前端vue项目完整详细指南的文章就介绍到这了,更多相关nginx部署vue内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx status配置及参数配置小结

    nginx status配置及参数配置小结

    本文主要介绍了nginx status配置及参数配置,其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,感兴趣的可以了解一下
    2024-04-04
  • nginx调用php-fpm出错解决方法和nginx配置详解

    nginx调用php-fpm出错解决方法和nginx配置详解

    这篇文章介绍了nginx调用php-fpm出错的解决方法,最后给出了nginx配置方法,需要的朋友可以参考下
    2014-03-03
  • windows查看nginx是否启动的四种方法

    windows查看nginx是否启动的四种方法

    本文主要介绍了windows查看nginx是否启动的两种方法,文中通过图文代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • Nginx反向代理配置的全过程记录

    Nginx反向代理配置的全过程记录

    这篇文章主要给大家介绍了关于Nginx反向代理配置的相关资料,nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,需要的朋友可以参考下
    2021-06-06
  • nginx中域名、目录的301重定向配置示例

    nginx中域名、目录的301重定向配置示例

    这篇文章主要介绍了nginx中域名、目录的301重定向配置示例,分为域名和域名间的跳转,目录跳转等,需要的朋友可以参考下
    2014-07-07
  • 详解Nginx服务器中map模块的配置与使用

    详解Nginx服务器中map模块的配置与使用

    这篇文章主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下
    2016-01-01
  • 详解阿里云LINUX服务器配置HTTPS(NGINX)

    详解阿里云LINUX服务器配置HTTPS(NGINX)

    本篇文章主要介绍了阿里云LINUX服务器配置HTTPS(NGINX) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 使用nginx+tomcat实现静态和动态页面的分离

    使用nginx+tomcat实现静态和动态页面的分离

    这篇文章主要介绍了使用nginx+tomcat实现静态和动态页面的分离,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2017-01-01
  • nginx下gzip配置参数详解

    nginx下gzip配置参数详解

    这篇文章主要介绍了nginx下gzip配置参数详解,本文同时给出了配置例子,以及一些注意事项,需要的朋友可以参考下
    2014-08-08
  • nginx php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)

    nginx php-fpm中启用慢日志配置(用于检测执行较慢的PHP脚本)

    这篇文章主要介绍了nginx php-fpm中启用慢日志配置,php-fpm慢日志slowlog设置可以让我们很好的看见哪些php进程速度太慢而导致的网站问题,可以让我们方便的找到问题的所在,需要的朋友可以参考下
    2014-05-05

最新评论