| 2012年2月19日
这几天在安装了nginx后,老想和apache一起使用,这种搭配,我这里测试使用了3种方式
方法一:
使用redirect的方式,nginx运行在80端口,apache运行在8080端口,
让后在nginx这边配置到apache8080端口的redirect,
server { listen 192.168.1.101:80; server_name localhost; rewrite ^(.*) http://192.168.1.101:8080 permanent; 。。。。
这样在访问http://192.168.1.101的时候就会直接转跳到http://192.168.1.101:8080
这样的访问在firebug下看的时候直接可以看到nginx做了301的跳转,跳转目的地就是http://192.168.1.101:8080
这样做就很明显的暴露了我使用了nginx和apache两种服务器,而有些程序就会直接绕过nginx去访问apache了。
方法二:
使用nginx的proxy模块,做反向代理,nginx仍然在80端口,apache也仍然在8080端口
这个时候在nginx中配置这样:
server { listen 192.168.1.101:80; server_name localhost;
location / { proxy_pass http://192.168.1.101:8080/;#这里 proxy_redirect default ;#这里 root html; index index.html index.htm; } 这样在访问的时候看不到301的跳转,直接看到的就是结果,但是这个时候你直接访问http://192.168.1.101:8080也是可以访问的。当然前面也是一样的。
但是有些“聪明”的web程序或是软件,他们还是可以识别出apache在8080端口,他们会在访问的时候就直接绕过nginx而去直接访问apache了,即便事apache绑定在了内网ip上也避免不了这样的问题。
方法三:
使nginx和apache都运行在80端口,而绑定在不同的ip上,比如在nginx中这样配置:
server { listen 192.168.1.101:80; server_name localhost;
location / { proxy_pass http://127.0.0.1:80/; proxy_redirect default ; root html; index index.html index.htm; } apache绑定在127的内网端口上,nginx绑定在其他的ip上,而都绑定80端口。
这样访问都不会有任何问题了。都绑定在80端口上,你直接访问内网的80肯定是不可以的,只有从外网的80端口进入。
关注「黑光技术」,关注大数据+微服务