在ubuntu系统中将vue3的打包文件dist 部署nginx 并且配置ssl证书 以https方式访问

在ubuntu系统中将vue3的打包文件dist 部署nginx 并且配置ssl证书 以https方式访问

    • [确保 Nginx 已安装](#确保 Nginx 已安装)
    • [准备 Vue 3 打包文件](#准备 Vue 3 打包文件)
    • [配置 Nginx](#配置 Nginx)
    • [编辑 Nginx 配置文件](#编辑 Nginx 配置文件)
    • 启用配置文件
    • [测试 Nginx 配置](#测试 Nginx 配置)
    • [重新加载 Nginx](#重新加载 Nginx)
    • [配置 SSL 证书](#配置 SSL 证书)
    • [获取 SSL 证书](#获取 SSL 证书)
    • 验证证书自动续期
    • 验证部署
    • 注意事项

确保 Nginx 已安装

如果尚未安装 Nginx,可以通过以下命令安装:

bash 复制代码
sudo apt update
sudo apt install nginx

准备 Vue 3 打包文件

bash 复制代码
确保你已经通过 npm run build 命令生成了 Vue 3 项目的 dist 目录。
将 dist 目录的内容上传到 Ubuntu 服务器的某个目录,例如 /var/www/vue-app。

配置 Nginx

bash 复制代码
创建 Nginx 配置文件
在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件,例如 vue-app:
sudo nano /etc/nginx/sites-available/vue-app

编辑 Nginx 配置文件

将以下内容粘贴到配置文件中(根据你的实际路径和域名修改):

bash 复制代码
server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain.com www.your-domain.com;

    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

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

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

说明:

your-domain.com:替换为你的实际域名。

/var/www/vue-app:替换为你的 Vue 3 打包文件 dist 目录的实际路径。

ssl_certificate 和 ssl_certificate_key:指向你的 SSL 证书和私钥文件路径。如果使用 Let's Encrypt,路径通常为 /etc/letsencrypt/live/your-domain.com/。

启用配置文件

创建一个符号链接到 /etc/nginx/sites-enabled/ 目录以启用配置:

bash 复制代码
sudo ln -s /etc/nginx/sites-available/vue-app /etc/nginx/sites-enabled/

测试 Nginx 配置

在重新加载 Nginx 之前,测试配置文件是否正确:

bash 复制代码
sudo nginx -t

重新加载 Nginx

如果配置测试通过,重新加载 Nginx 以应用更改:

bash 复制代码
sudo systemctl reload nginx

配置 SSL 证书

安装 Certbot(Let's Encrypt)

如果尚未安装 Certbot,可以通过以下命令安装:

bash 复制代码
sudo apt install certbot python3-certbot-nginx

获取 SSL 证书

bash 复制代码
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

按照提示完成证书申请流程。

Certbot 会自动配置 Nginx 以使用 HTTPS,并设置证书自动续期。

验证证书自动续期

测试证书是否可以自动续期:

bash 复制代码
sudo certbot renew --dry-run

验证部署

打开浏览器,访问 https://your-domain.com

确保网站可以通过 HTTPS 正常访问。

检查浏览器地址栏是否显示安全锁标志。

注意事项

文件权限:

确保 Nginx 用户(通常是 www-data)对 /var/www/vue-app 目录有读取权限:

bash 复制代码
sudo chown -R www-data:www-data /var/www/vue-app
sudo chmod -R 755 /var/www/vue-app

防火墙:

确保防火墙允许 HTTP(80)和 HTTPS(443)端口:

bash 复制代码
sudo ufw allow 'Nginx Full'

日志文件:如果遇到问题,检查 Nginx 的日志文件:

bash 复制代码
sudo tail -f /var/log/nginx/error.log

总结:

通过以上步骤,你可以在 Ubuntu 系统中部署 Vue 3 的打包文件,并通过 Nginx 配置 SSL 证书以 HTTPS 方式访问。关键步骤包括:

安装并配置 Nginx。

部署 Vue 3 的 dist 目录。

使用 Certbot 获取并配置 SSL 证书。

测试和验证部署。

这样,你的 Vue 3 应用就可以通过 HTTPS 安全访问了。

相关推荐
leo__5201 分钟前
在Ubuntu中设置开机自动运行(sudo)指令的指南
服务器·ubuntu·postgresql
bubiyoushang8885 小时前
解决 Git 访问 GitHub 时的 SSL 错误
git·github·ssl
派阿喵搞电子7 小时前
在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新
c++·qt·ubuntu·ui
地衣君10 小时前
RISC-V 开发板 + Ubuntu 23.04 部署 open_vins 过程
linux·ubuntu·risc-v
爱学习的小道长12 小时前
Ubuntu Cursor升级成v1.0
linux·运维·ubuntu
EelBarb12 小时前
seafile:ubuntu搭建社区版seafile12.0
linux·运维·ubuntu
Xam_d_LM12 小时前
【Latex】Windows/Ubuntu 绘制 eps 矢量图通用方法(drawio),支持插入 Latex 数学公式
linux·ubuntu·科研·矢量图·drawio
小刘同学++12 小时前
ECB(电子密码本,Electronic Codebook) 和 CBC(密码分组链接,Cipher Block Chaining)区分于用途
网络·ssl
upp16 小时前
【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)
ubuntu·pdf·bug·ghostscript
冰橙子id17 小时前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php