/etc/httpd/conf.d/ajp.conf

/etc/httpd/conf.d/ajp.conf

我正在运行glassfish 4.1并检查http-listener-2上的JK-Listener选项:

JK 监听器已检查

我也已经安装了 apache (sudo yum 安装 httpd)并创建了以下文件/etc/httpd/conf.d

/etc/httpd/conf.d/ajp.conf

ProxyPass /painel ajp://localhost:8181/painel

ProxyPassReverse /painel ajp://localhost:8181/painel

但是我尝试使用 ajp 协议时得到的只是 503 http 错误。

我错过了什么?

如果我将协议从 ajp 更改为 http 并将端口更改为 8080,它就可以正常工作。但我的想法是使用 ajp。

欢迎任何帮助。

答案1

您可能遇到了 SELinux 的问题。

默认情况下,Web 服务器只能与有限范围的端口建立出站连接:

# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

端口 8181 不在该列表中。

因此您有两个选择。您可以:

  1. 将所需的端口添加到允许的端口列表中:

    # semanage port -a -t http_port_t -p tcp 8181
    
  2. 在其中一个现有允许端口上运行 Glassfish。

答案2

我知道这是一篇旧帖子,但我遇到了同样的问题。我的问题是 selinux,在我运行以下命令后:

setsebool -P httpd_can_network_connect 1

一切正常!

相关内容