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 @   倔强的老铁  阅读(169)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示