在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 安全访问了。

相关推荐
工业一体机老司机10 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
夏虫不可与之言冰11 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
人生百态,人生如梦15 小时前
Ubuntu在低版本下使用ccswitch+claudecode(CCSwitch+Docker+Claude)连调教程
linux·ubuntu·docker·claudecode·ccswitch
Joy T16 小时前
从 Nginx 到 Gateway 再到微服务:一次 AI 请求的完整链路
nginx·微服务·gateway·controller·路由转发·ai service·接口错误排查
小匠石钧知16 小时前
07_在k8s集群中安装ingress-nginx
nginx·容器·kubernetes·ingress
坐看风云变幻17 小时前
Betaflight 开发环境搭建保姆级教程(Ubuntu / Windows+WSL / Docker 三方案 + 官方网址大全)
windows·ubuntu·docker·无人机·飞控·betaflight
远牧17 小时前
Ubuntu 26 升级踩坑实录:hermes-agent venv 重建全过程
linux·ubuntu·ai·agent
眼不痛请看我17 小时前
Ubuntu_22.04_LTS虚拟机安装指南
linux·数据库·ubuntu
墨香幽梦客18 小时前
SSL/TLS握手过程全拆解:从ClientHello到Finish的关键步骤与性能优化
网络协议·性能优化·ssl
缘友一世19 小时前
校园网有线网络排查(NetworkManager与netplan的坑)
ubuntu·校园网