You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2反向代理配置WebSocket遇403禁止访问问题排查求助

Apache2反向代理配置WebSocket遇403禁止访问问题排查求助

各位好,我现在正忙着在Apache2反向代理上配置WebSocket,我们用ProxyPass把流量转发到Tomcat,但一直出问题——日志里始终显示403 Forbidden错误。

先贴一下我的Apache2虚拟主机配置:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin XXX
ServerName  XXX

LogLevel warn
ErrorLog  ${APACHE_LOG_DIR}/XXX_error.log
CustomLog ${APACHE_LOG_DIR}/XXX_access.log combined

ProxyPass / http://localhost:8110/ disablereuse=on

RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule /(.*) "ws://localhost:8110/$1" [P,L]

ProxyPreserveHost On
ProxyAddHeaders On
RequestHeader set X-Forwarded-Proto "https"

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/XXX/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/XXX/privkey.pem
</VirtualHost>
</IfModule>

之前我用Nginx做反向代理的时候,应用的WebSocket连接完全正常,日志里能明确看到“websocket connected”的记录,但就是找不到Apache2配置里到底哪里出了问题。

下面是能正常工作的Nginx虚拟主机配置:

server {
server_name XXX;

## Redirect to tomcat
location / {
proxy_pass http://localhost:8110;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Origin' '*'  always;
add_header 'Access-Control-Max-Age' '3600'  always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' '*' always;
}

## Listen https
listen 443 ssl; # managed by Certbot
## Certificates
ssl_certificate /etc/letsencrypt/live/XXX/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/XXX/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
if ($host = XXX) {
return 301 https://$host$request_uri;
} # managed by Certbot

## Listen http
listen 80;
server_name XXX;
return 404; # managed by Certbot
}

有没有大佬能帮我排查下Apache2的配置问题?

备注:内容来源于stack exchange,提问作者Sander Böhm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:34:30