https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html
ระบุอย่างชัดเจนว่าการมอบฉันทะให้ websocket นั้นง่ายเหมือน
ProxyPass "/ws2/" "ws://echo.websocket.org/"
แต่ไม่ว่าฉันจะทำอะไร
==> /var/log/apache2/domain.com-access_log <==
192.168.240.1 - - [29/Mar/2022:20:46:40 +0000] "GET /url-to-proxy/?query-stuff HTTP/1.1" 502 2554
==> /var/log/apache2/domain.com-error_log <==
[อ. 29 มี.ค. 20:46:40.096767 2022] [proxy:error] [pid 56] [client 192.168.240.1:54536] AH00898: การอัปเกรดที่ไม่คาดคิด: websocket (คาดว่า n/a) ส่งคืนโดย /url-to-proxy/
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (บูลส์อาย)"
[...]
$apache2 -v
เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.51 (Debian)
สร้างเซิร์ฟเวอร์: 2021-10-07T17:49:44
ฉันตาม คำตอบ stackoverflow นี้
และใช้
RewriteEngine เปิดอยู่
RewriteCond %{HTTP:Connection} อัปเกรด [NC]
#RewriteCond %{HTTP:Upgrade} เว็บซ็อกเก็ต [NC]
RewriteCond %{HTTP:อัปเกรด} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:3000/$1 [P,L]
ProxyRequests ปิด
#ProxyPass / http://127.0.0.1:3000/
ProxyPass /url-to-proxy/ http://127.0.0.1:3000/
#ProxyPass / ws://127.0.0.1:3000/
#ProxyPass /url-to-proxy/ ws://127.0.0.1:3000/
พยายามมี/ไม่มี เขียนกฎใหม่
/ProxyRequests ปิด
/ProxyPassย้อนกลับ
ด้วย 'http' หรือ 'ws' หรือ '/' หรือ '/url-to-proxy/' ใน พร็อกซีพาส
แต่ฉันมักจะได้รับข้อผิดพลาดเดียวกัน
สิ่งนี้อาจเกี่ยวข้อง: https://bz.apache.org/bugzilla/show_bug.cgi?id=55598
ฉันอยากจะคิดว่าบั๊กจากปี 2559 ได้ถูกย้ายกลับไปสู่อิมเมจนักเทียบท่าที่มีอายุเพียงสองเดือนแล้วในตอนนี้... (wordpress:5.8.3-php7.4-apache)