相关疑难解决方法(0)

如何在不将请求传递给Web服务器的情况下使用HAProxy发送响应

由于CORS(跨源资源共享),服务器正在接收数千个OPTIONS请求.现在,每个选项请求都被发送到其中一个服务器,这有点浪费,因为知道HAProxy可以在没有Web服务器帮助的情况下自己添加CORS头.

frontend https-in
    ...
    use_backend cors_headers if METH_OPTIONS
    ...

backend cors_headers
    rspadd Access-Control-Allow-Origin:\ https://www.example.com
    rspadd Access-Control-Max-Age:\ 31536000
Run Code Online (Sandbox Code Playgroud)

但是为了实现这一点,我需要在cors_headers后端指定至少一个实时服务器,该服务器仍将接收请求.

如何在不指定任何服务器的情况下处理后端中的请求?如何将请求传播到服务器,同时将响应发送到浏览器并保持连接活动?

http haproxy cors

11
推荐指数
2
解决办法
1万
查看次数

Haproxy CORS 请求的资源上不存在“Access-Control-Allow-Origin”标头

我想配置 haproxy 通过返回以下内容来处理 CORS:

<Header name="Access-Control-Allow-Origin">*</Header>
<Header name="Access-Control-Allow-Headers">Origin, X-Requested-With, Content-Type, Accept, Authorization, JSNLog-RequestId, activityId, applicationId, applicationUserId, channelId, senderId, sessionId</Header>
<Header name="Access-Control-Max-Age">3628800</Header>
<Header name="Access-Control-Allow-Methods">GET, DELETE, OPTIONS, POST, PUT</Header>
Run Code Online (Sandbox Code Playgroud)

但是,我得到的是“请求的资源上不存在‘Access-Control-Allow-Origin’标头”。注意我使用的是 haproxy 1.7.9 并且无法使用 lua 编译。

我已经查看了https://www.haproxy.com/blog/enabling-cors-in-haproxy/但无法用 lua 重新编译。

还有HAProxy CORS OPTIONS 标头拦截设置

global
  log 127.0.0.1   local0
  log-send-hostname

  chroot /etc/haproxy
  pidfile /var/run/haproxy.pid
  maxconn 40000
  user haproxy
  group haproxy

  daemon
  nbproc 2
  tune.ssl.cachesize 100000
  tune.ssl.default-dh-param 2048

defaults
  log     global
  log-format  %ci:%cp\ [%t]\ %ft\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\ %ST\ %B\ %U\ %CC\ \ %CS\ …
Run Code Online (Sandbox Code Playgroud)

haproxy cors

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

cors ×2

haproxy ×2

http ×1