从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)

从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)

文章目录

  • 从零开始的 vue项目部署到服务器详细步骤(vue项目build打包+nginx部署+配置ssl证书)
  • 一、前言
  • 二、vue项目部署前配置
    • 1、vite.config.js 增加base字段
    • 2、src/router/index.js 在历史记录中加入BASR_URL
    • 3、src/utils/request.js 加上后端的baseURL
  • 二、加SSl证书配置https
    • 1、将域名解析到你的服务器
    • 2、验证该域名是否解析成功
    • 3、let's Encrypt 证书申请
      • (1)certbot安装
      • (2)let's Encrypt 证书申请
  • 三、配置nginx
    • 1、nginx安装
    • 2、配置nginx.conf
    • 3、重新运行nginx
    • 4、vue 编译后文件上传服务器
  • 四、后话
    • 1、完结
    • 2、每日小tip:ssl证书自动续订。

一、前言

未来的开发者们请上座,在这里许多人在自己的电脑做完前端后,下一步就是怎么部署到服务器上对外开放了。
ps:默认各位大大已经购买云服务器了哈。
我的服务器是ubutu 22.04,第一次跟随本教程的时候最好也是ubuntu系统,避免环境问题。

二、vue项目部署前配置

为了便于演示,我新建了一个项目用于演示。

1、vite.config.js 增加base字段

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vite.dev/config/
export default defineConfig({base:'vue-test',//这个为项目名plugins: [vue(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}}
})

2、src/router/index.js 在历史记录中加入BASR_URL

在这里插入图片描述

3、src/utils/request.js 加上后端的baseURL

如果,涉及后端,则需要在拦截器那边加上后端的baseURL,。如果没有则不用管,同时后续nginx也不需要配这个路由

二、加SSl证书配置https

前置条件:我默认你已经有域名了,如果没有需要在国内的阿里云、腾讯云、华为云,国外的Hostinger等云服务商都提供域名注册和域名解析服务。找一个你喜欢的就可以,在这里我用的是阿里云注册的域名进行演示。
(国内的域名需要提前备案,15天左右。如果比较着急且只是演示可以用香港或者国外如Hostinger 云服务厂商提供的域名这样可以免掉备案的步骤)

1、将域名解析到你的服务器

在这里插入图片描述

等待20s左右让其传播。

2、验证该域名是否解析成功

执行 nslookup + 域名,即可查询域名解析对象

nslookup bak.sligenai.cn

在这里插入图片描述
看到解析到你的公网服务器的ip就完成了

3、let’s Encrypt 证书申请

(1)certbot安装

我们需要安装Certbot并用于申请let’s Encrypt 。
打开终端,运行以下命令:

sudo apt update
sudo apt install certbot python3-certbot-nginx

(2)let’s Encrypt 证书申请

 sudo certbot --nginx -d bak.sligenai.cn

如果是第一次,可能会要你输入你的邮箱和让你输入A或Yes同意一些条款你按着输入就行。
在这里插入图片描述
然后就生成好证书了。记得保存好fullchain.pem和private.pem的路径,这个等下会用到。

下面是我的fullchain.pem和private.pem的路径
/etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem
/etc/letsencrypt/live/bak.sligenai.cn/privkey.pem

fullchain.pemprivkey.pem这两个文件对于配置Web服务器以安全地提供服务是非常重要的。下面是这两个文件的详细说明:
fullchain.pem

  • 含义fullchain.pem文件包含了你的域名证书以及任何中间证书的完整链,但不包括根证书。这个文件是将你的证书(cert.pem)和中间证书(chain.pem)合并而成的。在大多数Web服务器的SSL配置中,使用这个文件可以确保客户端(如Web浏览器)能够信任你的证书,即能够通过证书链验证到达一个根CA,该根CA已被客户端信任。
  • 用途:在配置SSL/TLS时,fullchain.pem通常用于服务器配置中指定证书文件。例如,在Nginx中,会用它来设置ssl_certificate指令。

privkey.pem

  • 含义privkey.pem文件包含了你的私钥,这是在生成CSR(证书签名请求)时创建的。私钥是安全通信的基础,用于在SSL/TLS握手过程中对服务器端信息进行加密,确保只有对应的公钥(即你的服务器证书)能够解密。私钥必须保密,任何泄露都可能导致通信被解密。
  • 用途:在Web服务器的SSL配置中,privkey.pem用于设置私钥文件的位置。例如,在Nginx配置中,会用它来设置ssl_certificate_key指令。

总结

  • fullchain.pem:包含你的域名证书和中间证书的全部内容,用于服务器配置中指定证书链。
  • privkey.pem:包含你的私钥,用于服务器配置中指定私钥文件的位置。

在配置SSL/TLS时,确保正确使用这些文件,同时保护好你的私钥,避免安全风险。

注1:如果你没有开放443,80端口,申请的时候会报错
注2:如果你没有将域名解析到这个服务器的ip也会报错,会出现类似下面的回复。

在这里插入图片描述

三、配置nginx

1、nginx安装

sudo apt update
sudo apt install nginx

2、配置nginx.conf

打开nginx.conf

 vim /etc/nginx/nginx.conf

下面是一个nginx.conf模版

# nginx.conf
worker_processes auto; # 与worker_connections乘积表示实际处理事件的总数events {worker_connections 1024;  # 每个工作进程连接数
}http {include       mime.types;   # 文件扩展名与文件类型映射表default_type  application/octet-stream;client_max_body_size 10M;sendfile        on;            # 减少网络报文数量keepalive_timeout  65; # 链接超时时间,自动断开,如果为0则无限时长。# HTTP server配置(重定向到HTTPS)server {listen 80;  # 监听80端口server_name bak.sligenai.cn;             # 替换为你的域名return 301 https://$host$request_uri;  # 强制重定向到HTTPS}# HTTPS server配置server {listen 443 ssl;  # 监听443端口server_name bak.sligenai.cn;             # 替换为你的域名ssl_certificate /etc/letsencrypt/live/bak.sligenai.cn/fullchain.pem;          #替换为你的fuuchian.pemssl_certificate_key /etc/letsencrypt/live/bak.sligenai.cn/privkey.pem;    #替换为你的privkey.pemroot         /usr/share/nginx/html;location / {index index.html index.htm;rewrite / /login permanent; # 根据需求选择是否保留}location /vue-test {                              #替换为你的项目路由,注意需要一开头的base一致index index.html index.htm;try_files $uri $uri/ /vue-test/index.html;       #这个则是/路由/index.html 前面的部分一致不用动。   }location /abc {   #替换为请求拦截器中的baseURL的地址,如果没有后端则可以删掉这一部分add_header Cache-Control no-cache;add_header Pragma no-cache;add_header Expires 0;proxy_pass  http://localhost:3777/;   #后端地址}error_page  404  /404.html;  # 自定义404页面location = /404.html {internal;}error_page  500 502 503 504  /50x.html;  # 自定义500页面location = /50x.html {internal;}}}

注1:上面一共两个路由 /vue-test、 /abc ,分别为前端和后端。
注2:如果有多个项目则复制/vue-test 在旁边粘贴一个,改掉路由即可。
注3: 如果有其他域名,则额外把上面这个server复制一遍,即可。

3、重新运行nginx

在这里插入图片描述
检测nginx.conf是否配置正常

nginx -t

如果报错,则按照提示修改即可。

重新运行nginx

sudo systemctl reload nginx

4、vue 编译后文件上传服务器

在这里我们使用SCP完成传输

scp(Secure Copy
Protocol)是一个在Linux和Unix系统上广泛使用的命令行工具,用于在本地和远程之间安全地复制文件和目录。它基于SSH(Secure
Shell)协议,提供了数据传输的加密和安全认证,确保在传输过程中数据不会被窃听或篡改。

scp的基本语法非常直接,可以用来复制文件或目录从一个位置到另一个位置。这里有几个常见的用法示例:

  1. 复制本地文件到远程
  2. 模版:scp /path/to/local/file username@remotehost:/path/to/remote/directory

我们要拷贝编译后文件到nginx的web页面放置地方:/usr/share/nginx/html
所以我们到项目路径下执行指令如下:(ip替换为你的)

scp -r .\dist\ root@123.57.210.235:/usr/share/nginx/html

在这里插入图片描述
重命名dist为路由的地址

四、后话

1、完结

然后我们进入:https://bak.sligenai.cn/vue-test/,可以看到已经访问成功了!
恭喜你!掌握了如何从零开始的 vue项目部署到服务器(vue项目build打包+nginx部署+配置ssl证书),执行上面的步骤如果有什么问题欢迎在下面提出!

至此,你已经成功为你的网站安装了Let’s Encrypt SSL证书,并配置了自动续订。你的网站现在应该也可以通过HTTPS安全访问了。
在这里插入图片描述

2、每日小tip:ssl证书自动续订。

let’s Encrypt的有效期是90天,怎么自动更新呢?运行下面的代码:

sudo certbot renew --dry-run

如果这个命令成功执行,那么证书续订工作将自动进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/459941.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速遍历包含合并单元格的Word表格

Word中的合并表格如下,现在需要根据子类(例如:果汁)查找对应的品类,如果这是Excel表格,那么即使包含合并单元格,也很容易处理,但是使用Word VBA进行查找,就需要一些技巧。…

智慧园区 | 数智引领,让智慧触手可及

随着科技的飞速发展,智慧园区正成为现代城市发展的重要方向之一。在智慧园区中,各种高科技手段被应用于园区的管理和服务,为园区的运营和居民的生活带来无限可能。 智慧园区管理平台是智慧园区建设的核心。它集聚了大数据、物联网、云计算等技…

基于uniapp微信小程序的旅游系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

【分布式知识】分布式对象存储组件-Minio

文章目录 什么是minio核心特点:使用场景:开发者工具:社区和支持: 核心概念什么是对象存储?MinIO 如何确定对对象的访问权限?我可以在存储桶内按文件夹结构组织对象吗?如何备份和恢复 MinIO 上的…

iQOO手机怎样将屏幕投射到MacBook?可以同步音频吗?

众所周知,苹果品牌的设备自己有AirPlay的投屏功能,iPhone要投屏到MacBook只要连接同一网络,然后开启AirPlay就可以投屏。但其他品牌的手机没有AirPlay,怎么将手机屏幕投射到MacBook呢? 安卓系统的手机可以使用无线投屏…

2. 从服务器的主接口入手

Webserver 的主函数 main.cpp,完成了哪些功能? #include "config.h"int main(int argc, char *argv[]) {string user "";string passwd "";string databasename "";Config config;config.parse_arg(argc, a…

四、Prompt工程——简单应用

Prompt工程——简单应用 一、提示工程(Prompt Engineering)二、Prompt基本法则三、Prompt 调优四、简单的例子文本总结文本判断文本提取文本转化——翻译文本转化——语气 更多结语 一、提示工程(Prompt Engineering) 提示工程也…

5G RedCap工业路由器赋能电力物联网应用

随着5G轻量化技术应用的推进,5G RedCap旨在提供低功耗、低成本、广覆盖等功能特点赋能电力智能化升级。特别适用于工业物联网、低空经济、车联网、消费电子和轻量级5G的需求。 5G RedCap工业路由器的特点 低功耗:5G RedCap工业路由器通过节能技术&#…

Flume采集Kafka数据到Hive

版本: Kafka:2.4.1 Flume:1.9.0 Hive:3.1.0 Kafka主题准备: Hive表准备:确保hive表为:分区分桶、orc存储、开启事务 Flume准备: 配置flume文件: /opt/datasophon/flume-1…

react18中react-thunk实现公共数据仓库的异步操作

redux及react-redux都只能实现数据的同步修改更新,有点类似于vue中的mutation,只能做同步操作,异步的话不用actions来实现。由于在项目始终不可避免要实现的异步数据的更新,这明显不够用了。是时候引入我们的异步中间件redux-thun…

开源一款前后端分离的企业级网站内容管理系统,支持站群管理、多平台静态化,多语言、全文检索的源码

大家好,我是一颗甜苞谷,今天分享一款前后端分离的企业级网站内容管理系统,支持站群管理、多平台静态化,多语言、全文检索的源码。 前言 在当今的数字化时代,企业网站和个人博客已成为信息传播和品牌建设的重要渠道。…

Docker-常用命令大全(附命令详解)

文章目录 Docker 基础命令查看docker 运行状态关闭docker启动docker重启dockerdocker设置随服务启动而自启动查看docker 版本号信息docker 帮助命令 docker 镜像命令查看自己服务器中docker 镜像列表搜索镜像拉取镜像运行镜像保存镜像删除镜像加载镜像镜像标签 Docker 容器命令…

【ComfyUI】手动安装部署ComfyUI的运行环境

如果不喜欢已有的一键启动包,我们可以手动的安装和部署ComfyUI的运行环境,相比一键安装包,自己部署ComfyUI 环境具有相当大的灵活性,其实部署ComfyUI 环境非常简单,不像网上说的那么复杂。下面我们就按照顺序给大家分享…

Golang | Leetcode Golang题解之第520题检测大写字母

题目: 题解: func detectCapitalUse(word string) bool {// 若第 1 个字母为小写,则需额外判断第 2 个字母是否为小写if len(word) > 2 && unicode.IsLower(rune(word[0])) && unicode.IsUpper(rune(word[1])) {return f…

【Cri-Dockerd】安装cri-dockerd

cri-dockerd的作用: 在k8s1.24之前。k8s会通过dockershim来调用docker进行容器运行时containerd,并且会自动安装dockershim,但是从1.24版本之前k8s为了降低容器运行时的调用的复杂度和效率,直接调用containerd了,并且…

git下载和配置

git是什么? Git是一种分布式版本控制系统,用于跟踪文件的变化,尤其是源代码。它允许多个开发者在同一项目上进行协作,同时保持代码的历史记录。Git的主要特点包括: 分布式:每个开发者都有项目的完整副本&a…

GPT避坑指南:如何辨别逆向、AZ、OpenAI官转

市面上有些说自己是官转,一刀只需要1块甚至几毛钱,并声称官方倍率的,很大可能就是使用的是 逆向或Azure。 如何鉴别逆向 逆向的种类很多,主要分为3类 逆向不知名A| 镜像站或偷的 key。成本约等于0,调用聊天数据可能在…

postgresql增量备份系列一

简介 在一些大容量得数据库应用中,采用全量备份得方式,会带来大量时间浪费和开销,此时定期的增量备份可以使得数据存储周期变长。本文讲解几个增量备份工具 pg_basebackup pg_receivewal(异地归档模式) 使用pg_bas…

arcgis pro 3.3.1安装教程

一、获取方式: http://dt4.8tupian.net/2/29913a61b1500.pg3二、软件目录: 三、安装步骤: (1)安装软件运行环境windowsdesktop-runtime 8.0.4; (2)选中安装文件arcgispro_33zh_cn_190127.exe&…

LabVIEW汽车状态监测系统

LabVIEW汽车状态监测系统通过模拟车辆运行状态,有效地辅助工程师进行故障预测和维护计划优化,从而提高汽车的可靠性和安全性。 项目背景: 现代汽车工业面临着日益增长的安全要求和客户对于车辆性能的高期望。汽车状态监测系统旨在实时监控汽…