解决一下Nginx 部署 Vue的问题和介绍一下部署流程
首先,确保你已经安装了 Node.js 和 npm。你可以从 Node.js 官网 下载并安装最新版本的 Node.js。安装完成后,使用以下命令安装 Vue CLI:
npm install -g @vue/cli
如果你还没有 Vue 项目,可以使用 Vue CLI 创建一个新的项目:
vue create my-vue-project
按照提示选择项目配置。创建完成后,进入项目目录并构建项目:
cd my-vue-project
npm run build
这将生成一个 dist
目录,其中包含了所有静态文件。
更新包列表并安装 Nginx:
sudo apt update
sudo apt install nginx
启用 EPEL 仓库并安装 Nginx:
sudo yum install epel-release
sudo yum install nginx
安装完成后,启动 Nginx 服务并设置开机自启动:
sudo systemctl start nginx
sudo systemctl enable nginx
在 Nginx 的配置目录中创建一个新的配置文件。例如,在 Ubuntu 上,配置文件通常位于 /etc/nginx/sites-available/
目录中。
sudo nano /etc/nginx/sites-available/vue_project
在配置文件中添加以下内容:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/vue_project/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# Optional: Enable gzip compression
gzip on;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
gzip_vary on;
gzip_min_length 1024;
}
请将 your_domain_or_ip
替换为你的域名或服务器的 IP 地址,并将 /var/www/vue_project/dist
替换为你的 Vue 项目的构建目录路径。
在 Ubuntu 上,创建一个符号链接以启用配置:
sudo ln -s /etc/nginx/sites-available/vue_project /etc/nginx/sites-enabled/
在重新加载 Nginx 之前,测试配置文件是否正确:
sudo nginx -t
如果配置文件没有错误,重新加载 Nginx:
sudo systemctl reload nginx
将构建好的 Vue 项目文件复制到 Nginx 配置中指定的根目录。例如:
sudo mkdir -p /var/www/vue_project/dist
sudo cp -r /path/to/your/vue_project/dist/* /var/www/vue_project/dist/
确保 Nginx 有权限访问这些文件:
sudo chown -R www-data:www-data /var/www/vue_project/dist
如果你的服务器启用了防火墙,确保允许 HTTP 流量通过。以下是在 Ubuntu 上使用 UFW 的示例:
sudo ufw allow 'Nginx Full'
现在,你应该能够通过浏览器访问你的域名或 IP 地址来查看部署的 Vue 应用。
为了提高安全性,建议为你的站点配置 HTTPS。你可以使用 Let’s Encrypt 免费获取 SSL 证书。
确认 Certbot 已安装
通过运行以下命令来检查:
certbot --version
在 Ubuntu 上:
sudo apt install certbot python3-certbot-nginx
值得一提:
Certbot 默认将证书存储在 /etc/letsencrypt/live// 目录下。 是你的域名。
运行以下命令以获取证书并自动配置 Nginx:
sudo certbot --nginx -d your_domain_or_ip
按照提示完成证书获取和配置过程。
Certbot 会自动配置证书续期。你可以通过以下命令手动测试续期:
sudo certbot renew --dry-run
但是因为环境或者其他的什么原因,每个人的部署情况可能都会不同,具体情况具体分析,欢迎大家分享自己遇到的问题。