3

基本的服务器配置

基础配置

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;
    }
}

🌞Q16LS
15 声望1 粉丝

代码是程序员的艺术品,应该用心雕琢。