nginx解决跨域问题

需求背景,第三方报表系统,通过url完成用户单点登录。设置报表参数等

通过iframe内嵌方式完成报表展示,但是浏览器samesite的问题,跨域限制。

此处解决办法,可以在前端nginx服务,增加报表反向代理

配置如下:

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    
    gzip on;
    gzip_static on;
    gzip_min_length 1k;
    gzip_buffers 4 32k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6].";
	
    # 报表代理
    location  ~ /webroot/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://100.100.45.152:1025;
    }
	
    location / {
            root    /usr/share/nginx/html;
            index   index.html index.htm;
            try_files $uri $uri/ /index.html;
    }
    # 后端调用配置
    location /api {
        client_max_body_size  20m;
        proxy_read_timeout  20000;
        proxy_pass_header  Server;
        proxy_set_header  Host  $http_host;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Scheme  $scheme;
        proxy_pass  http://100.100.45.12:29401/;
        rewrite ^/api/(.*) /$1 break;
    }
		
    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
posted @ 2023-11-01 19:50  倔强的老铁  阅读(131)  评论(0编辑  收藏  举报