nginx代理tomcat

来源:互联网 发布:淘宝网包包新款男士 编辑:程序博客网 时间:2024/04/27 13:43

本机ip为10.150.0.88,tomcat1配置不动,tomcat2配置文件中所有监听号+1。nginx中将原始配置文件修改:

http {

    upstream servers{

          server10.150.0.88:8080;

          server10.150.0.88:8081;

    }

   server {

       listen  80;

       server_name  virtual_server@88;

       location / {

            proxy_pass  http://servers/;

       }

    }

}

※上面红的部分一样。

※http请求进来后,找到http属性中的server,然后匹配location,匹配成功后在server指向的upstream中找一个server,默认是轮询。

例如url请求为http://10.150.0.88:80/,80后面的这个斜杠和location后面的斜杠匹配成了同一个斜杠。所以由location中的proxy_pass属性设置代理,url被重写为http://10.150.0.88:8080/或者http://10.150.0.88:8081/。由于后面挂的是tomcat,又会自动变成http://10.150.0.88:8080/ROOT/index.jsp 和http://10.150.0.88:8081/ROOT/index.jsp 。 

※location和upstream都可以实现匹配,localtion一般是单个tomcat内部的匹配,一般跟业务有关,比如过滤特殊请求。而upstream过滤一般和机器负载有关,属于资源上的调度。也可以很灵活地将location的请求映射到某台机器上,将上面的location改成:

 location / {

     proxy_pass  http://10.150.0.88:8080/;

}

那么被这个location匹配成功的请求将只能访问tomcat1而不能访问tomcat2。




 

0 0
原创粉丝点击