基本的服务器配置
基础配置
server {
# 监听80端口,用于HTTP访问
listen 80;
# 服务器名称,可以是域名或IP地址,支持多个,用空格分隔
server_name your_domain.com www.your_domain.com;
# 对根路径(/)的请求处理
location / {
# 网站根目录,指定服务器查找文件的路径
root /var/www/html;
# 默认首页文件,按顺序查找,找到第一个存在的文件返回
index index.html index.htm;
}
}反响代理
server {
listen 80;
server_name proxy.your_domain.com;
location / {
# 将请求转发到后端服务器,这里是一个示例地址
proxy_pass http://backend_server:8080;
# 传递原始请求的Host头信息给后端服务器
proxy_set_header Host $host;
# 传递客户端真实IP给后端服务器,便于后端获取客户端IP
proxy_set_header X-Real-IP $remote_addr;
# 记录完整请求链路IP,方便追踪请求来源
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置与后端服务器建立连接的超时时间,单位秒
proxy_connect_timeout 60;
# 设置读取后端服务器响应的超时时间,单位秒
proxy_read_timeout 60;
# 设置向后端服务器发送请求的超时时间,单位秒
proxy_send_timeout 60;
}
}静态文件服务器配置
server {
listen 80;
server_name static.your_domain.com;
location / {
root /var/www/static;
# 开启目录列表功能,当访问目录且无默认首页文件时,列出目录内容
autoindex on;
# 设置缓存过期时间,这里表示静态文件缓存30天,减少重复请求
expires 30d;
}
}HTTPS 配置
server {
listen 443 ssl;
server_name secure.your_domain.com;
# SSL证书路径
ssl_certificate /etc/nginx/ssl/your_domain.com.crt;
# SSL证书私钥路径
ssl_certificate_key /etc/nginx/ssl/your_domain.com.key;
# 启用HTTP/2协议,提升性能
http2 on;
# 配置SSL协议版本,只启用较新且安全的协议版本
ssl_protocols TLSv1.2 TLSv1.3;
# 设置SSL加密套件,选择安全强度高的套件
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
}
# 将HTTP请求重定向到HTTPS
server {
listen 80;
server_name secure.your_domain.com;
return 301 https://$server_name$request_uri;
}负载均衡配置
# 定义后端服务器组
upstream backend_servers {
# 后端服务器1,weight表示权重,权重越高分配到的请求越多
server 192.168.1.100:8080 weight=3;
# 后端服务器2
server 192.168.1.101:8080;
# 备份服务器,当前面的服务器都不可用时启用
server 192.168.1.102:8080 backup;
}
server {
listen 80;
server_name load_balancer.your_domain.com;
location / {
# 将请求转发到后端服务器组,Nginx会根据负载均衡算法分配请求
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。