Nginx 部署项目
大约 3 分钟
Nginx 如何部署前端项目?如何转发后端接口?如何部署多个项目?
部署前端项目的 Nginx 配置
在使用 Nginx 部署前端项目时,通常需要进行以下配置:
server 块:
- 定义一个虚拟主机来处理前端项目的请求。
- 使用
listen
指令指定监听的端口(通常为 80 或 443)。 - 使用
server_name
指令定义域名。
location 块:
- 使用
root
指令指定前端项目的构建文件所在目录。 - 使用
index
指令指定默认的首页文件。 - 使用
try_files
指令确保在使用 Vue Router 或 React Router 等前端路由时,所有请求都重定向到index.html
。
- 使用
SSL 配置(可选):
- 如果需要启用 HTTPS,可以在
server
块中添加 SSL 相关配置。 - 使用
ssl_certificate
和ssl_certificate_key
指令指定 SSL 证书和密钥文件。
server { listen 80; # listen 443 ssl; server_name lingyuan.tech www.lingyuan.tech; # ssl_certificate /path/to/ssl/cert.pem; # ssl_certificate_key /path/to/ssl/cert.key; location / { root /www/blog/src/.vuepress/dist; index index.html; try_files $uri $uri/ /index.html; } }
- 如果需要启用 HTTPS,可以在
通过以上配置,Nginx 可以成功地将前端项目部署到服务器上,并处理来自客户端的请求。
转发后端项目的 API 接口配置
在使用 Nginx 转发后端项目的 API 接口时,通常需要进行以下配置:
- server 块:
- 定义一个虚拟主机来处理 API 请求。
- 使用
listen
指令指定监听的端口。 - 使用
server_name
指令定义域名。
- location 块:
- 使用
proxy_pass
指令将请求转发到后端服务器。 - 使用
proxy_set_header
指令设置请求头,以便后端服务器可以获取客户端的真实 IP 和请求协议。
- 使用
相关信息
配置同一项目的前后端时,写在一个server块下,写多个location块即可。
server {
listen 80;
server_name lingyuan.tech www.lingyuan.tech;
location /api {
proxy_pass http://lingyuan.tech:8080;
}
}
通过以上配置,Nginx 可以成功地将 API 请求转发到后端服务器,并处理来自客户端的请求。
一个服务器配置多个项目
在 Nginx 中配置多个项目时,可以通过定义多个 server
块来实现。每个 server
块可以用于处理不同的域名或端口,从而实现对不同项目的独立配置。以下是一个示例:
server {
listen 80;
server_name lingyuan.tech www.lingyuan.tech;
location / {
root /www/blog/src/.vuepress/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://lingyuan.tech:8080;
}
}
server {
listen 80;
server_name autocoder.lingyuan.tech www.autocoder.lingyuan.tech;
location / {
root /www/auto-coder-web/dist;
index index.html index.htm;
}
location /api {
proxy_pass http://autocoder.lingyuan.tech:8081;
}
}
主配置文件解释
nginx.conf
是 Nginx 的主配置文件,通常包含以下几个主要配置块:
全局块:
- 该块位于配置文件的最顶部,影响 Nginx 的整体运行。
- 常见配置包括
user
(指定运行 Nginx 的用户)、worker_processes
(指定工作进程的数量)等。
events 块:
- 该块配置与网络连接处理相关的参数。
- 例如,
worker_connections
指定每个工作进程可以处理的最大连接数。
http 块:
- 该块包含与 HTTP 服务相关的配置,是 Nginx 最常用的配置块。
- 可以包含多个
server
块,定义不同的虚拟主机。 - 常见配置包括
include
(引入其他配置文件)、default_type
(设置默认的 MIME 类型)等。
server 块:
- 定义一个虚拟主机的配置。
- 包含
listen
(指定监听的端口)、server_name
(定义主机名)等配置。 - 可以包含多个
location
块。
location 块:
- 用于匹配请求的 URI,并定义如何处理这些请求。
- 可以配置
root
(指定请求的根目录)、proxy_pass
(反向代理到其他服务器)等。
通过这些配置块,Nginx 可以灵活地处理不同的请求和服务需求。