我正在试图弄清楚如何配置我的apache站点 - 可用的反向代理。我的网站服务器包含两个express / nodejs应用程序。一个是运行端口3001和另一个(端口3000)的游戏,使用.pug文件为我的网站生成布局。因此,当您在没有反向代理的情况下访问我的网站时,它会将默认的Apache加载到页面(当然)。当你访问zeyeland.com网站时,我已经设置了我的反向代理去我的网站快递应用程序。我可以在zeyeland.com/bomberkidsonline上访问我的视频游戏,因为我设置了其他反向代理。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:3001/$1 [P,L]
RewriteCond %{QUERY_STRING} transport=polling [NC]
RewriteRule /(.*) http://localhost:3001/$1 [P]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://localhost:3001/$1 [P]
ProxyPass /socket.io http://localhost:3001/socket.io
ProxyPassReverse /socket.io http://localhost:3001/socket.io
ProxyPass /bomberkidsonline http://localhost:3001/
ProxyPassReverse /bomberkidsonline http://localhost:3001/
ProxyPass /arcadeisland http://localhost:3000/arcadeisland
ProxyPassReverse /arcadeisland http://localhost:3000/arcadeisland
ProxyPass / http://localhost:3000
ProxyPassReverse / http://localhost:3000
确定我遇到的问题是我无法访问我的服务器的其他部分,也就是使用常规html和javascript并且不需要端口的其他游戏。只有当我摆脱localhost:3000的反向代理或设置此特定代理时,我才能访问网站的这些部分:
ProxyPass /exampleText http://localhost:3000
ProxyPassReverse /exampleText http://localhost:3000
当我的反向代理设置为:
时 ProxyPass / http://localhost:3000
ProxyPassReverse / http://localhost:3000
我无法访问我的其他游戏网址,例如zeyeland.com/dungeonkids和zeyeland.com/spacedodge。当我删除上面的代理反向时,我可以访问这些地址。这对我来说是一个两难的问题,因为我喜欢我的快递应用程序,它使用哈巴狗在访问我的网站时首先访问网站布局。似乎每当我访问我的服务器上方的URL时,想要路由到当前的应用程序。这很奇怪,因为当我键入zeyeland.com/bomberkidsonline时,它会路由到相应的应用程序URL。我甚至尝试为使用html,csss和javascript的无端口游戏配置反向代理。
ProxyPass /dungeonkids http://zeyeland.com/dungeonkids
ProxyPassReverse /dungeonkids http://zeyeland.com/dungeonkids
这不起作用,我收到某种浏览器网关错误或其他什么。我该如何解决这个问题?使用express / nodejs服务网站不是一个好习惯吗?我应该使用普通的html,css和javascript创建我的网站吗?