image

nginx代理设置允许跨域请求

配置内容:

	  #===== 允许跨域访问 配置开始 =====
      proxy_hide_header 'Access-Control-Allow-Origin';
      add_header 'Access-Control-Allow-Origin' '*' always;
      add_header 'Access-Control-Allow-Headers' '*';
      add_header 'Access-Control-Allow-Methods' '*';
      # OPTIONS 直接返回204
      if ($request_method = 'OPTIONS') {
            return 204;
      }
      #===== 允许跨域访问 配置结束 =====

完整server示例

server
{
    listen 80;
	listen 443 ssl http2;
    server_name api.test.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/api.test.com;
  
    location / {
       #proxy_set_header Host $http_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;

      # proxy_connect_timeout 300;
      # # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
      # proxy_http_version 1.1;
      # proxy_set_header Connection "";
      # chunked_transfer_encoding off;
  
      #===== 允许跨域访问 配置开始 =====
      proxy_hide_header 'Access-Control-Allow-Origin';
      add_header 'Access-Control-Allow-Origin' '*' always;
      add_header 'Access-Control-Allow-Headers' '*';
      add_header 'Access-Control-Allow-Methods' '*';
      # OPTIONS 直接返回204
      if ($request_method = 'OPTIONS') {
            return 204;
      }
      #===== 允许跨域访问 配置结束 =====

      proxy_pass http://127.0.0.1:8100;
   }

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }

    #禁止在证书验证目录放入敏感文件
    if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
        return 403;
    }
}