通过apache的反向代理实现多用途服务器

遇到问题

最近一直有个问题困惑着我,apache、nodejs、tomcat不能同时在服务器80端口运行,对域名进行设置时使用ip:port又不能得到期望的结果(结果一直是以一个iframe的形式),因此就在segmentFault上发问:同一台服务器运行多个http服务如何实现?之后得到了数位大神的回答,大意就是采用反向代理来实现。因此百度了一些文章,也看了看apache的手册,大概解决了这个问题。

apache的思路

apache的思路应该是将服务和参数转发给真正的服务器,然后从服务器拿到结果返回给浏览器,思路和以前的模拟登录获取结果有点相似,不过这里apache都已经做好了,只需要配置好就可以了。

apache的域名和代理配置

首先是域名配置,还是和以前的vhosts配置一样

<VirtualHost *:80>
    ServerName www.eg.com
</VirtualHost>

我觉得要是做整个域名的转发这样就行了,接下来添加配置

<VirtualHost *:80>
    ServerName www.eg.com
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

这样就将www.eg.com的请求转发到了8080端口。
我用nodejs启动了一个express应用,当然,只不过是输出了一句“hello world”。
clipboard.png
然后在浏览器中输入www.eg.com,就会顺利的出现“hello world”了。

其他事项

  • 需要开启apache代理的拓展

    LoadModule proxy modules/proxy.so
    LoadModule proxy_connect modules/proxy_connect.so
    LoadModule proxy_http modules/proxy_http.so
    LoadModule proxy_html modules/proxy_html.so
  • 需要设置hosts
    windows下位置在c:/windows/system32/drivers/etc/hosts,linux下在/etc/hosts下。

  • 经过我的测试,apache对apache自身的其他端口的代理和对nodejs的代理是正常工作的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值