以下是一个包含 HTTPS 配置和反向代理配置的 Nginx .conf
文件示例,并对其中的基本参数进行解释:
# 用户和组,通常可以使用默认的 "nginx"
user nginx;
# 工作进程数,一般设置为 CPU 核心数
worker_processes auto;
# 错误日志的路径和级别
error_log /var/log/nginx/error.log notice;
# PID 文件的路径
pid /var/run/nginx.pid;
events {
# 每个工作进程的最大并发连接数
worker_connections 1024;
}
http {
# 包含 MIME 类型的映射
include /etc/nginx/mime.types;
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;
# 避免在网络连接时缓冲数据
tcp_nopush on;
# 保持长连接的超时时间
keepalive_timeout 65;
# 启用 Gzip 压缩
gzip on;
# 服务器配置块
server {
# 监听的端口
listen 80;
# 服务器名称
server_name example.com;
# 重定向所有 HTTP 请求到 HTTPS
return 301 https://$server_name$request_uri;
}
server {
# 监听的 HTTPS 端口
listen 443 ssl;
# 服务器名称
server_name example.com;
# SSL 证书文件路径
ssl_certificate /etc/nginx/ssl/cert.pem;
# SSL 证书密钥文件路径
ssl_certificate_key /etc/nginx/ssl/key.pem;
# SSL 配置参数
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 反向代理配置
location / {
# 代理到后端服务器(如:http://127.0.0.1:8080)
proxy_pass http://backend_server;
# 传递客户端的真实 IP 给后端
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
以下是对上述配置中一些关键参数的解释:
listen
:指定服务器监听的端口,可以是 HTTP 的 80 端口或 HTTPS 的 443 端口。server_name
:定义服务器的名称,用于匹配客户端请求的主机头。ssl_certificate
和ssl_certificate_key
:分别指定 SSL 证书和密钥的文件路径,用于启用 HTTPS 加密连接。proxy_pass
:指定反向代理的目标服务器地址。proxy_set_header
:设置传递给后端服务器的请求头,以提供更多的客户端信息。