APACHE反向代理中的Web套接字
我在AEBS和基站后面运行两台服务器。 Server1运行10.12.6和server5.3.1,并使用webapps执行反向代理,如preducer.ca教程所述。 这允许我只有一个外部IP地址,其中server1.mydomain和server2.mydomain在内部获得分布式IP地址。 这很管用。。但在server2上,我运行Filemaker Webdirect,它使用web套接字。因此,我在浏览器中得到一个wss://错误。 我喜欢我写的网络应用程序 从…起 很明显,我输入了自己的server2的IP地址和名称 然而,web套接字wss://server2.mydomain 不起作用。。web direct失败了 我可以登录,但一旦我打开wss连接,它就不再工作了。这是一个apache mod_代理错误 在我读到的apache错误日志中 [Sun Apr 19 21:58:04.846046 2020][proxy_http:error][pid 598](70008)部分结果有效,但处理不完整:[客户端189.62.112.162:49213]AH01110:错误读取响应 我在浏览器里读到APACHE反向代理中的Web套接字,apache,websocket,reverse-proxy,Apache,Websocket,Reverse Proxy,我在AEBS和基站后面运行两台服务器。 Server1运行10.12.6和server5.3.1,并使用webapps执行反向代理,如preducer.ca教程所述。 这允许我只有一个外部IP地址,其中server1.mydomain和server2.mydomain在内部获得分布式IP地址。 这很管用。。但在server2上,我运行Filemaker Webdirect,它使用web套接字。因此,我在浏览器中得到一个wss://错误。 我喜欢我写的网络应用程序 从…起 很明显,我输入了自己的s
WebSocket connection to 'wss://fmserver.embatek.com.br/fmi/webd/PUSH?v-uiId=1&v-pushId=341172cf-5d45-454d-972e-3029de5807fa&X-Atmosphere-tracking-id=0&X-Atmosphere-Framework=2.3.2.vaadin1-javascript&X-Atmosphere-Transport=websocket&X-Atmosphere-TrackMessageSize=true&Content-Type=application/json;%20charset=UTF-8&X-atmo-protocol=true' failed: Unexpected response code: 500
任何关于在哪里演奏小提琴的提示。
你的
皮埃尔已经很久了,所以可能已经解决了 我也遇到了同样的问题。我在我的环境中使用了nginx,但通过将以下值传递给服务器解决了这个问题
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_cache_bypass $http_upgrade;
nginx中的最终代码如下
upstream filemakerserver-webdirect-upstream {
server xxxxxx.xxx:443;
}
server {
listen 80;
server_name yyyyyy.yyy;
if ($host = yyyyyy.yyy) {
return 301 https://$host$request_uri;
}
return 404;
}
server {
listen 443 http2 ssl;
server_name yyyyyy.yyy;
location / {
try_files $uri @filemakerserver-webdirect-upstream;
}
location @filemakerserver-webdirect-upstream {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
proxy_pass https://branch-office;
}
ssl_certificate /etc/letsencrypt/live/yyyyyy.yyy/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yyyyyy.yyy/privkey.pem;
}
下面是我用日语写的一篇文章
我希望这对apache环境有所帮助。我使用的是apache,安全连接在代理服务器上停止,因此我想如果您的FileMaker服务器使用安全连接,您可以通过将ws更改为wss、80更改为443等来修改我使用的虚拟主机配置(如下所示)。10.1.2.3是FileMaker服务器的内部地址。这里可能有一些多余的东西,但它起作用了
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName my.external.server.name
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule /(.*) "ws://10.1.2.3:80/$1" [P,L]
# <Location />
ProxyPreserveHost On
ProxyPass "/fmi/webd/PUSH" "ws://10.1.2.3:80/fmi/webd/PUSH"
ProxyPassReverse "/fmi/webd/PUSH" "ws://10.1.2.3:80/fmi/webd/PUSH"
ProxyPass / http://10.1.2.3:80/
ProxyPassReverse / http://10.1.2.3:80/
# Order allow,deny
# Allow from all
# </Location>
SSLCertificateFile /etc/letsencrypt/live/my.external.server.name/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.external.server.name/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/my.external.server.name/chain.pem
</VirtualHost>
</IfModule>
ServerName my.external.server.name
重新启动发动机
RewriteCond${HTTP:Upgrade}websocket[NC]
RewriteCond${HTTP:Connection}升级[NC]
重写规则/(*)“ws://10.1.2.3:80/$1”[P,L]
#
代理主机
ProxyPass“/fmi/webd/PUSH”ws://10.1.2.3:80/fmi/webd/PUSH
ProxyPassReverse“/fmi/webd/PUSH”ws://10.1.2.3:80/fmi/webd/PUSH
ProxyPass/http://10.1.2.3:80/
ProxyPassReverse/http://10.1.2.3:80/
#命令允许,拒绝
#通融
#
SSLCertificateFile/etc/letsencrypt/live/my.external.server.name/cert.pem
SSLCertificateKeyFile/etc/letsencrypt/live/my.external.server.name/privkey.pem
Include/etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile/etc/letsencrypt/live/my.external.server.name/chain.pem
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName my.external.server.name
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule /(.*) "ws://10.1.2.3:80/$1" [P,L]
# <Location />
ProxyPreserveHost On
ProxyPass "/fmi/webd/PUSH" "ws://10.1.2.3:80/fmi/webd/PUSH"
ProxyPassReverse "/fmi/webd/PUSH" "ws://10.1.2.3:80/fmi/webd/PUSH"
ProxyPass / http://10.1.2.3:80/
ProxyPassReverse / http://10.1.2.3:80/
# Order allow,deny
# Allow from all
# </Location>
SSLCertificateFile /etc/letsencrypt/live/my.external.server.name/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.external.server.name/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/my.external.server.name/chain.pem
</VirtualHost>
</IfModule>