主配置文件:
/etc/nginx/nginx.conf
自定义配置文件:
/etc/nginx/conf.d/*
加载自定义配置文件(在 nginx.conf
中配置):
include 需要加载的配置文件
server {
# 默认访问端口号为 80,可按需修改
listen 80;
# 请填写绑定证书的域名
server_name wiki.hty1024.com;
# 把http的域名请求转成https
return 301 https://$host$request_uri;
}
server {
# SSL 默认访问端口号为 443,可按需修改
listen 443 ssl;
# 请填写绑定证书的域名
server_name wiki.hty1024.com;
# 请填写证书文件的相对路径或绝对路径
ssl_certificate /etc/nginx/conf.d/wiki.hty1024.com.crt;
# 请填写私钥文件的相对路径或绝对路径
ssl_certificate_key /etc/nginx/conf.d/wiki.hty1024.com.key;
ssl_session_timeout 5m;
# 请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
# 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 转发至后台服务
location / {
# 后台服务地址
proxy_pass http://127.0.0.1:3000;
add_header Cache-Control private,no-store,max-age=0,no-cache,must-revalidate,post-check=0,pre-check=0;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded_Proto "http";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_request_buffering off;
proxy_read_timeout 7200;
proxy_send_timeout 7200;
client_max_body_size 1024m;
}
# 部署静态页面
location / {
# 网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
# 例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
# 全局配置(配置影响整个 Nginx 服务的设置,如用户权限、进程数等)
## 运行 nginx 服务的用户
user nginx;
## nginx 工作进程数量
worker_processes auto;
## 错误日志路径和记录等级
error_log /var/log/nginx/error.log warn;
## pid文件路径
pid /var/run/nginx.pid;
# events配置(配置与网络连接相关的设置,如连接数)
events {
## 每个工作进程可以处理的最大连接数
worker_connections 1024;
}
# upstream 配置(定义后端服务器)
upstream backend_server {
server 127.0.0.1:8080;
# 可以添加多个后端服务器,实现负载均衡
# server 192.168.1.2:8080;
# server 192.168.1.3:8080;
}
# http 配置(包含与 HTTP 相关的配置,如代理、缓存、日志等)
http {
## 引入其他配置文件
include /etc/nginx/mime.types;
## 指定未定义 MIME 类型的资源的默认内容类型
default_type application/octet-stream;
## 日志格式化
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
## 请求日志路径和记录等级
access_log /var/log/nginx/access.log main;
## 启用高效的数据传输方式(允许直接从文件系统发送文件到网络)
sendfile on;
## 设置 Nginx 与客户端之间的长连接保持时间
keepalive_timeout 65s;
## 启用响应内容压缩
gzip on;
# server 配置(定义虚拟主机的设置,如监听端口、域名)
server {
## 监听端口
listen 80;
## 访问域名
server_name example.com www.example.com;
## 静态资源根目录
root /var/www/html;
## 静态资源主页面
index index.html index.htm;
# location 配置(配置特定 URI 的处理方式)
## 处理静态页面
location / {
## 按顺序查找文件或资源
try_files $uri $uri/ =404;
}
## 处理静态文件
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
log_not_found off;
}
## 处理反向代理
location /api/ {
### 转发地址,此处使用上面配置的 upstream
proxy_pass http://backend_server;
### 转发地址,此处直接配置地址,和上面使用 upstream 配置的二选一
proxy_pass http://127.0.0.1:8080;
### 添加自定义 HTTP 头
add_header Cache-Control private,no-store,max-age=0,no-cache,must-revalidate,post-check=0,pre-check=0;
### 修改后端服务器返回的 Location 和 Refresh 头部
proxy_redirect off;
### 是否在将请求发送到后端服务器之前缓冲请求体
proxy_request_buffering off;
### 指定在等待后端服务器响应时的超时时间
proxy_read_timeout 7200s;
### 指定向后端服务器发送请求时的超时时间
proxy_send_timeout 7200s;
### 限制客户端请求体的最大大小
client_max_body_size 1024m;
### 设置传递给后端服务器的请求头
#### 保留客户端请求的原始主机名
proxy_set_header Host $host;
#### 获取客户端的真实 IP 地址
proxy_set_header X-Real-IP $remote_addr;
#### 记录代理链中的所有 IP 地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#### 传递请求的协议(HTTP 或 HTTPS)
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}