请问apache如何实现二级目录反向代理

现在的vhosts.conf有如下配置

<VirtualHost *:80>
    ServerName mall.xxx.com
    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
        Header set Access-Control-Allow-Origin *
        Header set Access-Control-Allow-Headers accept,authorization,content-type
    </Proxy>
    ProxyPass / http://127.0.0.1:8888/
    ProxyPassReverse / http://127.0.0.1:8888/
</VirtualHost>

现在想实现
访问mall.xxx.com代理到http://127.0.0.1:8888/
访问mall.xxx.com/seller代理到http://127.0.0.1:8889/
请问是否有办法实现

阅读 4.2k
2 个回答
二级 不是A=>B=>C么? 是我一直理解错了?

ProxyPassMatch 要代理到的地址

<VirtualHost *:80>
    ServerName mall.xxx.com
    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
        Header set Access-Control-Allow-Origin *
        Header set Access-Control-Allow-Headers accept,authorization,content-type
    </Proxy>
    ProxyPass /seller http://127.0.0.1:8889/seller
    ProxyPass / http://127.0.0.1:8888/
    ProxyPassReverse /seller http://127.0.0.1:8889/seller
    ProxyPassReverse / http://127.0.0.1:8888/
</VirtualHost>

已解决,原来直接加多个ProxyPass不同目录指向不同地址就行了.

在这里给以后用得上的童鞋提个醒,如果是跟我一样要把dev项目通过域名二级目录【根域名被占用的情况】转发出去外网测试,要记得把webpackoutput.publicPath如果是vue cli 3.xvue.config.jsbaseUrl改成跟转发接口一样的二级目录,像我这样vue.config.js就得改成

module.exports = {
  baseUrl: '/seller',
  devServer: {
    port: 8889,
  },

不然资源加载不了

最后吐槽下微信公众号的JS接口安全域名只能设置3个哪里够用,否则也不用这么麻烦把多个项目挂载同一个域名下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题