如何让apache和nodejs共用80端口
SF上面已经有一篇文章:http://segmentfault.com/q/1010000000702092,但是不符合我的要求,设置后无法达到效果,所有请求都被转发了。网上找了其他的文章,都发现不能符合我的要求。
我用了反向代理来解决,但是发现所有请求都被转发了,这不是我想要的。
假设我的域名是www.hello.com
我想通过一个域名,一个ip地址,80端口,只需要改变访问的url就能指定到不同的web服务器(指的是apache和nodejs) 我要实现的效果是:
1、www.hello.com或者hello.com访问我的ghost博客站点
2、www.hello.com/wechat/wx.php 或 hello.com/wechat/wx.php访问我的php站点
现在说说我的服务器目录设置:
1、php站点根目录在 /usr/local/apache/htdocs/,下面有wechat这个目录,是我的微信公众号后台服务器;
2、ghost站点在 /usr/local/apache/htdocs/ghost/,已经用nodejs启动了它,端口是2386。
在新增ghost站点之前,www.hello.com/wechat/ 是可以正常访问php站点的。
我在httpd.conf中加了这个设置:
ServerAdmin hello@foxmail.com
ServerName www.hello.com
ServerAlias hello.com
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://localhost:2386/ max=20 ttl=120 retry=300
ProxyPassReverse / http://localhost:2386/
ErrorLog "/usr/local/apache/logs/proxy_error.log"
加了上述站点后,我的所有请求都被转发到ghost站点去了,也就是www.hello.com/wechat/wx.php 也被 转发到了 http://localhost:2386/,提示找不到网页404错误。
请问我要如何设置才能让php的请求不被反向代理转发?谢谢!
回复内容:
我的服务器上用apache搭建了php的服务器,已经有程序在跑了,现在在玩 ghost,用的是nodejs。那么问题来了,如何让他们同用80端口。
SF上面已经有一篇文章:http://segmentfault.com/q/1010000000702092,但是不符合我的要求,设置后无法达到效果,所有请求都被转发了。网上找了其他的文章,都发现不能符合我的要求。
我用了反向代理来解决,但是发现所有请求都被转发了,这不是我想要的。
假设我的域名是www.hello.com
我想通过一个域名,一个ip地址,80端口,只需要改变访问的url就能指定到不同的web服务器(指的是apache和nodejs) 我要实现的效果是:
1、www.hello.com或者hello.com访问我的ghost博客站点
2、www.hello.com/wechat/wx.php 或 hello.com/wechat/wx.php访问我的php站点
现在说说我的服务器目录设置:
1、php站点根目录在 /usr/local/apache/htdocs/,下面有wechat这个目录,是我的微信公众号后台服务器;
2、ghost站点在 /usr/local/apache/htdocs/ghost/,已经用nodejs启动了它,端口是2386。
在新增ghost站点之前,www.hello.com/wechat/ 是可以正常访问php站点的。
我在httpd.conf中加了这个设置:
ServerAdmin hello@foxmail.com
ServerName www.hello.com
ServerAlias hello.com
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://localhost:2386/ max=20 ttl=120 retry=300
ProxyPassReverse / http://localhost:2386/
ErrorLog "/usr/local/apache/logs/proxy_error.log"
加了上述站点后,我的所有请求都被转发到ghost站点去了,也就是www.hello.com/wechat/wx.php 也被 转发到了 http://localhost:2386/,提示找不到网页404错误。
请问我要如何设置才能让php的请求不被反向代理转发?谢谢!
用nginx 可以做到..
在你的node外面使用nginx php用php-fpm和nginx通信,利用url规则转发完全满足你的需求。话说回来Apache的反向代理其实也可以,只是不如nginx简单好用速度快。还有在使用反向代理的时候node肯定不是和nginx同一个端口的啦。
ServerName www.test.com
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
请注意看这里:
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
是指将/
转发到http://127.0.0.1:9000/
也就是将所有的请求都转到9000
端口了。
试下这样子是否ok。
ProxyPass / http://127.0.0.1:2386/
ProxyPassReverse / http://127.0.0.1:2386/
ProxyPass /wechat/wx.php http://localhost:80/
ProxyPassReverse /wechat/wx.php http://localhost:80/
推荐阅读
-
如何让apache和nodejs共用80端口
-
如何让apache和nodejs共用80端口
-
如何才能让安装版的apache和现在已有的iis同时用80端口?
-
Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)
-
Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)
-
如何才能让安装版的apache和现在已有的iis同时用80端口?
-
如何才能让安装版的apache和现在已有的iis同时用80端口?_PHP教程
-
Jsp和PHP共用80端口整合Apache和Tomcat访问时无需加端口号
-
Jsp和PHP共用80端口整合Apache和Tomcat访问时无需加端口号