Linux

ProxyPass 工作人員主機名太長

  • April 21, 2021

我有一個反向代理 HTTPd (EC2) 和 Elastic Search Service (AWS),我想將我的請求從 Httpd 重定向到 ElasticSearch 服務(無需簡單地重寫 url,因為 Elasticsearch 服務無法從外部訪問)

所以像這樣配置我的Httpd:

ProxyPass /elasticsearch/ https://MyelasticSearchLongUrl.es.amazonaws.com
ProxyPassReverse /elasticsearch/  https://MyelasticSearchLongUrl.es.amazonaws.com

但問題是我的 httpd 生成錯誤:

ProxyPass worker hostname (MyelasticSearchLongUrl.es.amazonaws.com) 太長 httpd.service: 主程序退出,code=exited, status=1/FAILURE kill: 找不到程序"" httpd.service: 控制程序退出,code=exited 狀態=1 無法啟動 Apache HTTP 伺服器。單元 httpd.service 進入失敗狀態。httpd.service 失敗。

是否有解決方案來更改 httpd 配置特別是 URL 限制長度?

不可以,2.4 中引入的工作人員名稱的硬編碼限制為 96 個字元。有一個錯誤,但考慮到它在“新”狀態下的年齡超過 5 年,我懷疑上游不在乎。

正如您所說,解決方法是RewriteRule [P]改用。Alias如果您有一個混合本地服務文件 ( )RewriteRule和的複雜設置,請小心Redirect,因為從ProxyPass到的移動可能會RewriteRule更改執行順序。

與先前的答案不同,錯誤https://bz.apache.org/bugzilla/show_bug.cgi?id=53218指的是總工作人員名稱,而不是 OP 指定的主機名,並且允許截斷自httpd 的 v2.4.12。

受限制的工作主機名是一個不同的錯誤,在這裡進行了介紹:https ://bz.apache.org/bugzilla/show_bug.cgi?id=62085

第二個錯誤已修復,並已向後移植到 v2.4.30。

建議在 Ubuntu 中修復:https ://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1750356

引用自:https://unix.stackexchange.com/questions/420615