【发布时间】:2020-05-23 20:03:32
【问题描述】:
我有一个 nodejs 应用程序在端口 3050 上的 docker 容器内运行。如果我允许该端口通过防火墙,那么一切正常。但是,如果我尝试 ProxyPass 它,那么该应用程序似乎收到 GET 而不是 POST。
ProxyPass / http://localhost:3050/
当我查看访问日志时,apache 将请求作为 POST 接收。但是在 expressjs 中记录 req.method 会导致 GET。我还尝试了许多其他设置
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:3050/
ProxyPassReverse / http://localhost:3050/
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
最奇怪的是,我正在代理许多其他服务,例如 gitlab 和 keycloak,没有任何问题。
这可能与 HTTP 1.1 或 HTTP 2 有关吗?还是我的 httpd 服务器设置有问题?
【问题讨论】:
标签: node.js apache express postman