【Nginx 】Nginx 部署前端 vue 项目 📅 发布时间:2026/7/5 6:52:48 👁️ 浏览次数: 1. 项目打包1.1 安装依赖在项目部署之前确保开发环境中已安装Node.js和npm这是运行Vue项目的基础。通过执行npm install命令可以安装项目所需的所有依赖。这一步是打包流程的前提确保了后续编译的顺利进行。根据npm的官方数据npm install命令在安装依赖时会根据package.json文件中列出的依赖项进行下载和安装这个过程通常需要联网操作并且依赖于npm仓库的响应速度。在网络状况良好的情况下安装过程可以顺利完成。1.2 编译项目项目依赖安装完成后接下来需要编译Vue项目。编译过程是通过执行npm run build命令来完成的该命令会触发Vue CLI中的构建脚本将源代码转换为浏览器可以理解的静态资源。编译过程中Webpack作为模块打包器会根据配置文件vue.config.js中的规则对项目中的JavaScript、CSS、图片等资源进行打包和优化。这个过程包括代码的压缩、合并、分割等多个步骤以确保最终生成的静态资源既高效又轻量。根据Vue CLI的官方文档编译后的资源会被放置在项目根目录下的dist文件夹中。这个文件夹包含了所有用于生产环境的静态文件如HTML、CSS、JavaScript等。这些文件是部署到Nginx服务器上的核心内容。在编译过程中还可以通过添加环境变量来指定不同的构建环境例如开发环境、测试环境和生产环境。这样可以确保在不同环境下构建的资源具有相应的优化和配置。2. 安装Nginx2.1 Ubuntu/Debian系统在Ubuntu或Debian系统上安装Nginx通常涉及以下步骤这些步骤可以确保用户能够快速且正确地安装Nginx服务器。软件更新首先执行sudo apt-get update命令来更新本地软件包索引。这一步是必要的因为它确保了在安装过程中能够获取到最新的软件包版本。安装Nginx通过执行sudo apt-get install nginx命令来安装Nginx。这个过程会自动处理依赖关系并安装Nginx及其所需的所有组件。启动服务安装完成后使用sudo systemctl start nginx命令启动Nginx服务。这是确保Nginx能够正常工作的第一步。验证安装为了验证Nginx是否正确安装和运行可以通过访问http://localhost或服务器的IP地址来查看Nginx的欢迎页面。如果页面加载成功说明Nginx已经成功运行。2.2 CentOS/RHEL系统在CentOS或RHEL系统上安装Nginx的过程与Ubuntu/Debian略有不同主要体现在软件包管理器的使用上。软件更新首先执行sudo yum update命令来更新系统上的软件包。这一步确保了系统上的软件包列表是最新的。安装Nginx通过执行sudo yum install nginx命令来安装Nginx。这个命令会处理所有的依赖关系并安装Nginx服务器。启动服务使用sudo systemctl start nginx命令来启动Nginx服务。这一步是确保Nginx能够响应网络请求的关键。验证安装与Ubuntu/Debian系统一样可以通过访问http://localhost或服务器的IP地址来检查Nginx的欢迎页面。如果页面能够成功加载这表明Nginx已经正确安装并运行。在两种系统中安装Nginx的过程都相对简单主要区别在于使用的软件包管理器不同。无论是在Ubuntu/Debian还是CentOS/RHEL系统上用户都可以遵循上述步骤来安装和验证Nginx服务器。3. 配置Nginx3.1 创建Nginx配置文件创建Nginx配置文件是部署Vue项目的关键步骤之一。以下是一个基本的配置文件示例它定义了服务器如何响应对Vue应用的请求。server { listen 80; server_name your_domain_or_ip; root /var/www/my-vue-app/dist; index index.html; location / { try_files $uri $uri/ /index.html; } location ~* .(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|otf)$ { expires max; log_not_found off; } error_page 500 502 503 504 /50x.html; location /50x.html { root /usr/share/nginx/html; } }在这个配置中listen 80;表示服务器监听80端口server_name your_domain_or_ip;应替换为你的域名或IP地址。root /var/www/my-vue-app/dist;指定了Vue项目打包后的静态文件存放位置。location /块中的try_files指令确保了Vue的前端路由能够正确工作即使在刷新或直接访问非根路径时。3.2 启用配置文件启用配置文件通常涉及两个步骤创建配置文件的符号链接然后重新加载Nginx配置。sudo ln -s /etc/nginx/sites-available/my-vue-app /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx首先使用ln -s创建一个符号链接将你的配置文件链接到sites-enabled目录。接着使用nginx -t测试配置文件是否有语法错误。如果没有错误使用systemctl restart nginx命令重启Nginx服务以应用新的配置。3.3 测试并重启Nginx在应用了新的Nginx配置之后需要进行测试以确保一切正常工作。这包括访问Vue应用的主页以及尝试访问应用中的各个路由确保它们都能正确加载。访问应用在浏览器中输入http://your_domain_or_ip检查Vue应用是否能够正确加载。检查路由尝试访问应用的不同路由确保前端路由跳转能够正常工作。查看日志如果遇到问题查看Nginx的错误日志可以提供有用的信息。日志文件通常位于/var/log/nginx/error.log。如果一切正常你的Vue应用现在应该已经成功部署在Nginx服务器上了。如果遇到问题仔细检查配置文件中的指令确保没有遗漏或错误。4. 部署Vue项目4.1 将打包文件上传到服务器将Vue项目打包后生成的dist目录上传至服务器是部署过程中的关键步骤。根据服务器的操作系统和配置可以使用多种方法进行上传。使用scp或sftp这些是Linux系统常用的文件传输协议可以安全地将文件从本地传输到远程服务器。例如使用scp -r dist/ usernameserver_ip:/path/to/remote/命令。使用rsync该工具可以同步文件和目录并且可以保留文件的权限和时间戳适合于增量备份和镜像。命令示例rsync -avz --progress dist/ usernameserver_ip:/path/to/remote/.使用FTP客户端如FileZilla等这些工具提供了图形界面使得文件传输更加直观和便捷。一旦文件上传完成需要确保Nginx可以正确地读取和提供这些文件。这通常意味着需要将文件上传到Nginx配置中指定的root目录。4.2 设置文件权限在Linux系统中文件权限对于服务器的运行至关重要。Nginx服务通常以非root用户运行因此需要确保该用户有权访问和提供Vue项目文件。使用chown命令更改文件的所有者例如sudo chown -R www-data:www-data /path/to/dist/这里www-data是Nginx进程通常运行的用户名这可能因安装而异。使用chmod命令设置适当的文件权限以确保Nginx可以读取文件。通常755读、执行权限是目录的推荐权限而644读、写权限是文件的推荐权限。命令示例sudo chmod -R 755 /path/to/dist/。验证权限设置使用ls -l /path/to/dist/命令检查文件和目录的权限确保它们符合预期。正确设置文件权限是确保Vue项目能够被Nginx正确服务的前提。权限不足可能导致文件无法读取从而影响网站的访问。5. 配置SSL可选5.1 安装CertbotCertbot 是一个开源工具由 Let’s Encrypt 提供用于自动化获取和续订 SSL/TLS 证书的过程。安装 Certbot 的步骤通常如下对于基于 Debian 的系统如 Ubuntu使用以下命令安装sudo apt-get update sudo apt-get install certbot python-certbot-nginx对于基于 Red Hat 的系统如 CentOS使用以下命令安装sudo yum update sudo yum install certbot python-certbot-nginx安装完成后可以使用 Certbot 与 Nginx 集成自动化 SSL 证书的获取和配置过程。5.2 获取证书并配置Nginx使用 Certbot 获取 SSL 证书并自动配置 Nginx 的步骤如下运行 Certbot 命令指定 Nginx 作为插件并提供你的域名sudo certbot --nginx -d your_domain_or_ipCertbot 将自动验证你的域名获取 SSL 证书并更新 Nginx 配置以使用证书。配置文件通常更新在/etc/nginx/sites-available/目录下Certbot 会创建一个包含 SSL 配置的文件。5.3 自动更新证书Let’s Encrypt 证书的有效期为 90 天因此需要定期更新。Certbot 提供了自动更新的功能设置自动更新任务通常通过 cron 定时任务实现echo 0 3 * * * /usr/bin/certbot renew --quiet | sudo tee -a /etc/crontab /dev/null该命令会在每天凌晨 3 点运行 Certbot 以更新证书确保 SSL 证书始终保持有效状态。为了确保 Nginx 配置在证书更新后能够正确加载可以在更新证书后重启 Nginxsudo systemctl restart nginx通过这种方式即使在证书更新后前端 Vue 项目也能够继续通过 HTTPS 安全地提供服务。6. 测试部署6.1 访问测试部署完成后通过访问服务器的IP地址或绑定的域名来测试Vue项目是否能够正常加载。检查页面元素、脚本和样式是否正常工作确保没有资源加载错误。浏览器兼容性在不同的浏览器上进行测试包括但不限于Chrome、Firefox、Safari和Edge确保前端项目在所有主流浏览器上都能正常显示和交互。响应式测试验证页面在不同设备和分辨率上的响应式布局确保移动端和桌面端用户都能获得良好的浏览体验。6.2 性能测试对Vue项目进行性能测试包括页面加载时间、资源加载时间、白屏时间等关键性能指标的测试。性能监控工具使用Google Lighthouse、WebPageTest等工具对项目进行性能评估根据测试结果优化项目性能。资源优化根据测试结果对项目中的图片、脚本和样式进行压缩和优化减少HTTP请求次数提高加载速度。6.3 安全性测试验证部署的Vue项目是否符合安全标准包括但不限于跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等常见的网络安全威胁。安全审计进行代码审计和安全漏洞扫描确保项目中没有安全漏洞。HTTPS配置确保项目通过HTTPS协议提供服务使用SSL/TLS证书加密数据传输保护用户数据安全。6.4 备份与恢复为防止数据丢失和系统故障定期对项目文件和数据库进行备份并确保能够快速恢复。备份策略制定备份计划包括备份频率、备份存储位置和备份数据的保留时间。恢复演练定期进行数据恢复演练验证备份数据的有效性和恢复流程的可行性。
有人相爱,有人夜里开车看海,有人 leetcode 第一题写不出来 mark 了。 unordered_map 就是常用的哈希表容器。查找、插入、删除耗时都是 O(1)O(1)O(1) class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hashtable;//哈希表,第一个参数存数字//第… 2026/7/5 6:51:40
【Oracle11g SQL详解】日期和时间函数:SYSDATE、TO_DATE、TO_CHAR 等 日期和时间函数:SYSDATE、TO_DATE、TO_CHAR 等 在 Oracle 数据库中,日期和时间函数用于处理日期和时间数据。它们在记录创建时间、分析时间间隔、格式化输出等场景中非常重要。本文将详细讲解常用的日期和时间函数及其应用。一、SYSDATE:获取… 2026/7/5 6:51:33
docker 常用命令 目录一. 创建Dockerfile文件1.1 下载示例项目1.2 编辑Dockerfile文件二. image镜像2.1 镜像构建2.2 镜像查看2.2.1 docker images 查看所有镜像2.2.2 docker image ls 查看所有镜像2.2.3 镜像详细信息查看2.2.4 镜像指定信息查看2.3 镜像导出与导入2.3.1 导出镜像为文件2.3.2 将… 2026/7/5 1:24:10
免费开源AMD Ryzen调试神器:3分钟上手SMUDebugTool硬件掌控完全指南 免费开源AMD Ryzen调试神器:3分钟上手SMUDebugTool硬件掌控完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址… 2026/7/5 6:51:58
静音直流电机控制方案:TB9051FTG与PIC18LF46K42应用 1. 项目概述:静音直流电机控制方案在工业自动化和消费电子领域,直流电机的噪声问题一直是工程师面临的挑战。传统PWM控制方式虽然简单高效,但开关噪声和电磁干扰(EMI)问题严重影响设备的使用体验。本项目采用东芝TB9051FTG电机驱动IC与Microc… 2026/7/5 6:51:58
【2027最新】基于SpringBoot+Vue的智慧党建系统管理系统源码+MyBatis+MySQL 博主介绍:👨🎓博主简介 ❤计算机在读硕士 | CSDN 专业博客 | Java 技术布道者 ❤深耕实验室一线,痴迷 Spring Boot 与前后端分离架构,累计原创技术博文 200 篇; ❤手把手指导毕业设计 1000 项,… 2026/7/5 6:49:57
IS31FL3731 LED驱动与R7FA6M3AH3CFC MCU开发指南 1. IS31FL3731 LED驱动芯片深度解析IS31FL3731是一款由Lumissil Microsystems公司推出的高性能LED驱动芯片,专为控制144个单色LED而设计。这款芯片通过I2C接口进行编程控制,具有两个独立的控制区块,每个区块可独立管理72个LED。其核心特性包括… 2026/7/5 6:49:57
代驾系统搭建完整方案:订单调度与司机匹配机制解析 在城市夜生活越来越丰富的今天,代驾已经不只是“喝酒后找人开车”这么简单,它逐渐演变成一种高频、即时、强时效的本地服务。无论是商务应酬后的返程,还是临时需要把车安全送回家,用户最在意的往往只有三件事:能不能快… 2026/7/5 6:49:57
MiGPT终极指南:三分钟让小爱音箱变身智能AI助手 MiGPT终极指南:三分钟让小爱音箱变身智能AI助手 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 还在为小爱音箱的"人工智障&quo… 2026/7/5 6:43:55
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36