手把手教 Nginx 部署 Vue 项目

前言

想必大家一定听说过 Nginx,若没听说过它,那么一定听过它的 同行 Apache 吧!Nginx 同 Apache 一样都是一种 Web 服务器。如果你还是对它不够了解,可以自己去深入的学习一下 Nginx 相关的知识,这里不做过多的介绍了,今天我们就来聊聊使用 Nginx 如何来部署我们开发好的前端 Vue 项目。

Nginx 环境搭建

我们要使用 Nginx 那么就必须先要安装它。这里做的演示是本地服务,所以就安装到了自己的本地电脑上,如果是真正的要部署到线上服务器的话,我们需要在公司的服务器上安装 Nginx 来帮助我们来实现前端项目的部署工作。

本地电脑环境: MAC OS

至于怎么安装的话,我这边不做详细的介绍了,网络上像 Windows 上安装 Nginx、Mac 上安装 Nginx,这样的帖子还是非常多的,下面给大家贴出两个链接地址:

下面是我的 Nginx 的安装目录

Nginx安装目录位置

安装路径:

/usr/local/Cellar/nginx/1.17.8
复制代码

如果是你安装的,可能版本号不一样,改一下版本号就可以了

前端项目打包

首先我们的前端项目不可能直接放到服务器的根目录下去,一般都会起一个前端服务的项目名称,那么就需要先在打包之前在 Vue 的配置文件里去修改公共路径的配置,改成我们前端项目服务的名字,这里是 admin, 如下图

Vue配置文件

同时在项目的 router 目录下 index.js 为 Vue 项目指定路由基本路径为 /admin/

修改路由文件

在 Vue 项目的根目录执行下面的命令,打包成 dist 目录

npm run build
复制代码

将打包生成好的 dist 目录重命名为 admin

Nginx 部署项目

将命名好的 admin 前端项目放到 Nginx 的 html 目录下去

命令行在 Finder 打开 html 目录:

open /usr/local/Cellar/nginx/1.17.8/
复制代码

打开html目录

然后将 admin 拖到 html 中就可以了

修改 Nginx 配置文件

现在我们需要修改一下 Nginx 的配置文件 nginx.conf

配置改动:

  • 端口号为 9200
  • 服务名称为 localhost
  • root目录为 html
  • location地址为 /admin
  • 处理前台路由 history 模式刷新 404 的问题
http {
   server {
        # 监听的端口号
        listen       9200;

        # 服务名称 生产环境要修改成 公网ip 如 47.105.134.120
        server_name  localhost;

        # 配置根目录的地址是以 nginx 下的 html 文件夹为根目录来查找的
        root html;

        # 配置默认的主页显示 比如 47.105.134.120:8080 显示的 index 页面
        location / {
            try_files $uri $uri/ /index.html;	    
        }
        # 配置我们的 admin 的前台服务 比如 47.105.134.120:8080/admin/index.html
        location ^~ /admin {
            # 处理 Vue 单页面应用 路由模式为 history 模式刷新页面 404 的问题
            try_files $uri $uri/ /admin/index.html;
        }
        # 如果你想配置多个项目的话,可以复制上面的,修改一下就可以同时部署多个前端项目了
        # 比如
        # location ^~ /blog {
            # 处理 Vue 单页面应用 路由模式为 history 模式刷新页面 404 的问题
            # try_files $uri $uri/ /blog/index.html;
        # }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    include servers/*;
}
复制代码

启动 Nginx 访问项目

配置修改好之后,我们就可以使用 Nginx 的命令来启动 Nginx 服务

cd /usr/local/Cellar/nginx/1.17.8/bin/
nginx -s reload
复制代码

如果没有任何提示,就说明 Nginx 服务重新加载配置成功了

然后我们就可以在浏览器地址栏里访问 http://localhost:9200/admin 了。

项目访问演示


总结

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器。同时也是一个IMAP、POP3、SMTP代理服务器。Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。本文主要总结了在使用 Nginx 部署前端项目时应该如何配置,同时还可以通过 Nginx 来配置后台服务,下期更精彩哦。


### 使用 Nginx 部署 Vue.js 前端应用 为了使 Vue.js 应用能够在生产环境中稳定运行,Nginx 的配置至关重要。以下是详细的配置说明: #### 1. 安装 Nginx 确保服务器已经安装了最新版本的 Nginx。对于大多数 Linux 发行版来说,可以通过包管理器来快速安装。 ```bash sudo apt update && sudo apt install nginx ``` #### 2. 构建并上传 Vue.js 应用 构建 Vue.js 项目以生成用于生产的静态资源文件,并将其放置于 Web 可访问的位置。通常情况下,这涉及到执行 `npm run build` 或者类似的命令,在项目的根目录下创建一个名为 `dist/` 的文件夹[^1]。 #### 3. 修改默认站点配置 编辑 `/etc/nginx/sites-available/default` 文件或者为特定的应用创建一个新的 `.conf` 文件放在 `/etc/nginx/conf.d/` 下面。这里提供了一个基本的例子供参考: ```nginx server { listen 80; server_name example.com; root /path/to/dist/; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } error_page 500 502 503 504 /50x.html; } ``` 这段配置中的关键是 `try_files` 指令,它告诉 Nginx 尝试加载指定路径下的文件;如果没有找到,则返回 `index.html` 页面。这对于单页应用程序 (SPA) 特别有用,因为所有的路由都在客户端处理[^2]。 #### 4. 处理常见的 404 错误 当用户尝试访问不存在的 URL 路径时,默认行为可能会导致浏览器显示 404 Not Found 页面。为了避免这种情况发生,应该调整上述配置中的 `location / {}` 部分,使其总是指向入口 HTML 文档,从而让 JavaScript 运行环境接管剩余的工作流[^3]。 #### 5. 测试与重启服务 保存更改后的配置文件后,建议先测试一下语法是否有错误: ```bash sudo nginx -t ``` 确认无误后再重新启动 Nginx 服务使得新设置生效: ```bash sudo systemctl restart nginx ``` 通过以上步骤就可以成功地使用 Nginx 来托管 Vue.js 单页面应用了。当然,根据具体需求还可以做更多定制化操作,比如启用 HTTPS 加密连接、设置缓存策略等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值