记一次nginx部署Vue静态页面

本文记录了一次使用Vue开发的博客在阿里云ECS服务器上通过Nginx部署的过程,包括服务器准备、域名解析、Nginx安装配置、启用HTTPS服务以及优化首次加载速度的方法。在部署过程中,遇到的不安全提示和加载速度问题通过配置HTTPS证书和使用Gzip压缩得到了解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

用Vue写了个博客,第一次打包后正式部署到服务器上,将其中遇到的问题,及参考的资料分享一下。

服务器准备

本次部署使用的阿里云的ecs云服务器,系统为ubuntu16.04,由于购买的香港地区的服务器,因此无需备案。使用香港服务器有以下优缺点:

  1. 优点
    • 不需要备案,简化流程
  2. 缺点
    • 配置域名时无法针对该服务器进行显性或隐性url转发,如转发到端口等操作(可以用nginx配置解决,后文详述)
    • 有和谐风险(讲道理阿里这么明目张胆的卖应该没啥问题,如果用来搭梯子就另当别论)

域名准备

同样是阿里云购买的域名,如果要使用阿里云的服务器,强烈建议在阿里云购买域名,省去许多不必要的步骤。域名购买后应该进行域名解析,解析过程中由于无法解析到端口,因此没有特殊需求选择第一类A类即可,后续根据不同的二级域名在nginx中配置。

nginx安装与配置

  1. 安装(我在安装前删除了服务器自带的apache,参考彻底删除apache

    官方安

当你使用Nginx部署Vue.js应用时,有时可能会遇到页面刷新导致空白或者404的问题。这是因为Nginx默认配置下,对于静态文件如HTML、CSS和JavaScript,它会直接发送给浏览器,而不是通过服务器处理。而对于非静态资源,比如Vue的路由请求,Nginx需要将请求转发到Node.js应用。 解决这个问题通常需要以下步骤: 1. **配置Nginx**: - 配置`location`块,将所有以`.html`结尾的请求指向你的Vue应用的根目录,例如: ```nginx location / { try_files $uri $uri/ /index.html; } ``` - 对于其他非静态资源,可以设置一个反向代理,将其定向到你的应用程序(假设后端运行在8080端口): ```nginx location /api/ { proxy_pass http://localhost:8080; } ``` 2. **Vue路由模式**: - 确保Vue应用是以hash模式(`#`开头的URL)而非history模式(去掉`#`)。因为history模式需要服务器支持HTML5 History API,而Nginx可能无法自动处理这些改变历史录的请求。 3. **刷新问题**: - 如果你仍然遇到刷新页面空白,可以在Nginx中启用“如果不存在”缓存控制(`if_not_found`): ```nginx location / { try_files $uri $uri/ /index.html =404; } ``` - 这样当用户访问不存在的路径时,Nginx不会返回404,而是返回index.html,避免了刷新时的空白页。 **相关问题--:** 1. 如何在Nginx中启用gzip压缩来提高性能? 2. Vue.js项目如何设置跨域以让Nginx支持? 3. 如果我想在Nginx配置HTTPS,应该如何操作?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值