ProxyPass 工作人員主機名太長
我有一個反向代理 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