首页 > 编程知识 正文

nginxcorscookie,nginx反向代理跨域配置

时间:2023-05-05 13:21:12 阅读:131445 作者:1960

浏览器有同源访问策略,经常出现域间问题。 怎么坏?

解决方案:

常见的Nginx解决域间问题有两种方法。 一般使用第一个,接下来也是发布的第一个。

【推荐】通过配置header方式解决跨域

b .反向代理proxy_pass;

a

将nginx服务器的配置更改为

#允许域间请求的域,*是所有add _ header ' access-control-allow-origin ' *; #允许请求的header add _ header ' access -控制- allow-headers ' *; 带着cookie访问add _ header ' access-control-allow-credentials ' ' true '; GET,POST,PUT,delete add _ header ' access-control-allow-methods ' *; 添加上述配置,然后重新启动Nginx,您将看到可以成功访问。

PS :考虑到安全性,还可以指定访问源请求的域。 示例:

add _ header ' access-control-allow-origin ' ' http://test1.xqiangme.top '; 带nginx.conf user root; #用户nobody; 工作器_ processes 8; 将向外部提供web服务时的工作器进程数设置为可用的CPU核心数。 自动检测工作器_ rlimit _ nofile 100000 #工作器进程的最大打开文件数限制events { worker_connections 1024; #设置一个工作器进程可以同时打开的最大连接数multi_accept on; #新连接通知后,接受尽可能多的连接用户轮询; #设置用于复用客户端线程的轮询方法}http {server_tokens off; #关闭错误页面的nginx版本号,打开安全sendfile on; #从磁盘将数据读取到操作系统缓存tcp_nopush on; #向数据包发送所有头文件,不依次发送tcp_nodelay on; access_log off而不是缓存数据; 设置nginx是否保存访问日志。 如果清除此选项,则error _ log/usr/local/nginx/error.log crit; #记录错误日志keepalive_timeout 10; #为客户端分配keep-alive链路超时时间client_header_timeout 10; #设置请求标头的超时时间client_body_timeout 10; #请求体超时时间reset_timedout_connection on; #关闭未响应的客户端连接send_timeout 10; #客户端响应超时时间limit _ conn _ zone $ binary _ remote _ addr zone=addr :5 m; #设置用于存储各种密钥共享存储器(如当前连接数)的参数limit_conn addr 100; #设置指定密钥的最大连接数,允许每个IP地址同时打开最多100个连接include mime.types; #加载一系列要在以后使用的MIME类型。 efault _ type应用程序/octet-stream; #设置文件中使用的默认MIME-type。 charset UTF-8; #设置头文件的默认字符集gzip on; #数据gzip_disable 'msie6'; 不使用gzip IE6gzip_min_length 100k; #gzip压缩最小文件大小,超过压缩(自我调节) gzip_buffers 4 16k; #buffer为gzip_comp_level 3; #压缩级别:1-10,数字越大压缩越好,时间也越长gzip _ types text/plain application/x-JavaScript text/CSS application/xmltext/与缓存服务(如Squid )相关,打开后,Header将显示' vary : accept-encoding ' open _ file _ cache max=100000 inactive=20s; #在打开缓存的同时,缓存的最大数量和缓存的时间open_file_cache_valid 30s; 在open_file_cache中指定检测正确信息的间隔时间。 open_file_cache_min_uses 2; 定义了open_file_cache中指令参数处于非活动状态期间的最小文件数。 open_file_cache_errors on; #指定查找文件时是否缓存错误消息upstream web servers { server 192.168.1.165 weight=3。 #负载设置、权重最高的首选访问,其他默认设置均为1 # server 192.168.1.16633608080 max _ fails=3fail _ timout=30s; 如果在#30s中连续三次失败,则此服务器在随后的30s中处于禁用状态) #server 192.168.1.17 backup; #备用服务器}服务器{ listen 8098; server_name localhost; 自动索引on; #Nginx默认不允许整个charset utf-8目录的列表; #字符集client_max_body_size 10M设置; 设置nginx服务后,用户将设置最大上载数据大小,并根据业务需求设置位置^~/API { add _ header access-control-allow-origin * proxy_passhttp://web服务器; proxy _ set _ headerx -前向主机$ host : $ server _ port; proxy _ set _ headerx-real-IP $ remote _ addr; proxy _ set _ header origin $ host : $ server _ port; proxy _ set _ header referer $ host : $ server _ port; 重新写入^/API/(.* ) $ /$1 break; } location/{ try _ files $ uri $ uri//index.html; add _ header access -控制- allow-origin *; 根/usr/local/deploy/zkpt-ywzc-front; #前端代码绝对路径} error _ page 500502503504/50x.html; location=/50x.html {根html; }}面临的问题:

1、有同学遇到这种情况。 可以直接访问链接,正常访问登录,但通过nginx代理访问时,将显示空白页,不报告错误。

原因是使用了前边缘隔离框架,前访问部分的路径已禁用,页面不再正常显示。

解决方案:要为访问链路添加前缀,可以使用与nginx相同的配置

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。