我正在尝试设置nginx为wildfly 8.0.0.Final的反向代理。
我的HTTPSredirectconfiguration文件的一部分:
location /console { include conf.d/proxy.conf; proxy_pass http://127.0.0.1:9990/console; proxy_redirect http://127.0.0.1:9990/console https://XYWZ/console; } ... similar location for... /management /logout /error ... location / { include conf.d/proxy.conf; proxy_pass http://127.0.0.1:8080/; }
proxy.conf:
proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; add_header Front-End-Https on;
问题是 – 当我login到/控制台时,我得到错误消息:
访问被拒绝:没有足够的权限来访问这个接口。
我什至不知道这是什么原因造成的。 任何帮助表示赞赏!
Marko,也许已经太迟了,但是我可以按照你的configuration获得nginx和wildfly的工作,让我分享一下:
在proxy_headers.conf中:
proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; add_header Front-End-Https on;
在我的app.conf
location / { include conf.d/proxy_headers.conf; proxy_pass http://127.0.0.1:8080; } location /management { include conf.d/proxy_headers.conf; proxy_pass http://127.0.0.1:9990/management; } location /console { include conf.d/proxy_headers.conf; proxy_pass http://127.0.0.1:9990/console; } location /logout { include conf.d/proxy_headers.conf; proxy_pass http://127.0.0.1:9990/logout; } location /error { include conf.d/proxy_headers.conf; proxy_pass http://127.0.0.1:9990; }
在我这样做之前,我遇到了同样的错误,所以在Chrome中使用开发人员工具时我发现ajax请求/pipe理和其他path完成,所以我照顾他们。
尝试添加这在服务器configuration:
add_header Cache-Control "no-cache, no-store";
也许有点晚了,但这个信息可能会有所帮助。
我在前端的Nginx代理(没有SSL)和Docker中的WildFly 8.2.0.Final有同样的问题。 尝试通过Nginx访问pipe理控制台时出现相同的错误。
发现WildFly期望HOST:PORTforms的主机头(通过比较通过tcpdump捕获的数据包的头和在Wireshark中分析的头)。
这是我的configuration,它应该帮助任何人:
upstream app-debug { ip_hash; server AA.BB.CC.DD:32862 max_fails=3 fail_timeout=20 weight=1; } server { listen 9990 default_server; location / { proxy_pass http://app-debug; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $server_addr:$server_port; proxy_set_header X-Real-IP $remote_addr; } }
希望这可以帮助。