我得到了 Apache Web Server 2.4 和一个公开 Web 项目的 JBoss 7。
由于我在本地工作,因此我创建了一个/etc/hosts/
如下的域名条目:
127.0.0.1 testmask
并将此虚拟主机配置放入我的 Apache 中:
<VirtualHost *:80>
ServerName testmask/
ServerAlias testmask
RewriteEngine on
RewriteRule ^/$ http://testmask/MyWebapp/ [R]
ProxyPass / http://testmask:8080/
ProxyPassReverse / http://testmask:8080/
</VirtualHost>
这很有效。如果我在浏览器中输入:
testmask/
它重定向到:
http://testmask/MyWebapp/
到目前为止还不错。
现在因为我想得到相同的结果但只留下:
http://testmask/
我已经对重写规则进行了代理:
RewriteRule ^/$ http://testmask/MyWebapp/ [P]
但是在与上下文根相关的 css 和 js 上我遇到了 404 未找到问题。
这是因为我的浏览器正在尝试从以下位置获取 css 和 js:
http://testmask/static/
|- css/*
|- js/*
|- medias/*
当他们处于:
http://testmask/MyWebapp/static/
|- css/*
|- js/*
|- medias/*
(build\ReactJS create-react-app 的典型文件夹结构)。
尝试了通过 RewriteRules 或 Proxypass 不同的方法,但都没有用,这可能是因为我在 Apache 上的经验很差。
考虑到我并不想触碰,index.html
因为我的项目也需要独立存在,因为我是通过来开发它的npm
。
答案1
我会尝试使用 mod_proxy。
首先启用:
a2enmod mod_proxy
a2enmod mod_proxy_http
然后在你的 apache 配置中它将看起来像这样:
ProxyPass / http://localhost/MyWebapp
ProxyPassReverse / http://localhost/MyWebapp
所以现在如果你连接到http://本地主机/(或者你的情况http://测试掩码/)它应该是MyWebapp的代理。