nginx 反向代理基础配置

# HTTP 服务器配置
server {
    # 监听 80 端口,并将其设为默认服务器
    listen 80 default_server;
    listen [::]:80 default_server;

    # 服务器名称,使用 _ 表示匹配任何未匹配到其他 server_name 的请求
    server_name _;

    # 将所有 HTTP 请求重定向到 HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

# HTTPS 服务器配置
server {
    # 监听 443 端口,并启用 SSL
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    # 服务器名称,使用 _ 表示匹配任何未匹配到其他 server_name 的请求
    server_name _;

    # SSL 证书配置
    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    # SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 反向代理配置,将请求转发到内部的应用服务器
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # CORS (跨域资源共享) 头部配置
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
        add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization';

        # OPTIONS 方法直接返回 200 状态码
        if ($request_method = OPTIONS) {
            return 200;
        }
    }
}
  • HTTP 服务器块:

    • listen 80 default_server;listen [::]:80 default_server;: 监听 80 端口并设置为默认服务器。
    • server_name _;: 匹配所有未匹配到其他 server_name 的请求。
    • location / { return 301 https://$host$request_uri; }: 将所有 HTTP 请求重定向到 HTTPS。$host 代表请求的主机名,$request_uri 代表请求的 URI。
  • HTTPS 服务器块:

    • listen 443 ssl default_server;listen [::]:443 ssl default_server;: 监听 443 端口并启用 SSL。
    • server_name _;: 匹配所有未匹配到其他 server_name 的请求。
    • ssl_certificatessl_certificate_key: 配置 SSL 证书。
    • ssl_protocolsssl_ciphers: 优化 SSL 设置。
    • location /: 反向代理配置,将请求转发到内部应用服务器 http://localhost:8080
    • proxy_set_header: 设置头部信息,以便正确转发客户端请求信息。
    • CORS 配置:
      • add_header 'Access-Control-Allow-Origin' '*';: 允许所有来源的跨域请求。
      • add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';: 允许的请求方法。
      • add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept, Authorization';: 允许的请求头部。
      • if ($request_method = OPTIONS) { return 200; }: 对于 OPTIONS 请求,直接返回 200 状态码。
  • 如果需要基础的反爬虫可以加入以下配置
    • 在server中加入

      map $http_user_agent $blocked {
              default 0;
              ~*Spider 1;
              ~*Bot 1;
              ~*spider 1;
              ~*bot 1;
          }
    •  在下方的location中加入

      location / {
      	if ($blocked) {
      	    return 403;	
      	}
      }
  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值