NGINX负载均衡 只转发到第一个tomcat

法兰克鱿鱼 发布于 2012/07/23 10:37
阅读 1K+
收藏 0

conf如下:每次访问localhost,都只跳到8080的哪个tomcat !why why why

upstream localhost{

 server 127.0.0.1:8080;
 server 127.0.0.1:8090;
 }
    server {
        listen       80;
        server_name  localhost;
            #charset koi8-r;

        #access_log  logs/host.access.log  main;

     
       
 location / { 
  
 proxy_pass   http://localhost;
} 

以下是问题补充:

@法兰克鱿鱼: <!-- An Engine represents the entry point (within Catalina) that processes every request. The Engine implementation for Tomcat stand alone analyzes the HTTP headers included with the request, and passes them on to the appropriate Host (virtual host). Documentation at /docs/config/engine.html --> <!-- You should set jvmRoute to support load-balancing via AJP ie : <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> --> <Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> --> <!-- The request dumper valve dumps useful debugging information about the request and response data received and sent by Tomcat. Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.valves.RequestDumperValve"/> --> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <!-- Define the default virtual host Note: XML Schema validation will not work with Xerces 2.2. --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> 这个是tomcat的配置,来人看下低端错误啊 发现刚启动tomcat和nginx的时候刷新还是能出来一次8090的,后来就没了!! (2012/07/23 12:04)
加载中
0
鉴客
鉴客
试试给 localhost 改个名字,叫这个会不会引起歧义
迷路的游侠
迷路的游侠
回复 @法兰克鱿鱼 : 改完名字有重启吗?按理说不会啊
法兰克鱿鱼
回复 @鉴客 : 也就是说NGINX是配对了?TOMCAT也是可以启动的啊,直接访问8080和8090都可以(页面不一样),
鉴客
鉴客
回复 @法兰克鱿鱼 : 不会的,这样的配置是轮询的方式,你应该检查其他方面是不是有没注意的
法兰克鱿鱼
感谢回答,结果是一样 的
0
FeiFan
FeiFan

你的配置是对的, 默认是weight, 轮询

你去检查下port 8090上的tomcat是否还在工作.比如wget localhost:8090一下

因为nginx会跳过不工作的instance.

法兰克鱿鱼
我关了8080 他就去访问8090了!why!
法兰克鱿鱼
工作的啊,我直接访问8090是可以的
0
法兰克鱿鱼
很奇怪。在运行tomcat的 Sessions Example 时候 可以看到每次刷新session都是在2个tomcat间变化的。
0
Tom-Lin
Tom-Lin

引用来自“法兰克鱿鱼”的答案

很奇怪。在运行tomcat的 Sessions Example 时候 可以看到每次刷新session都是在2个tomcat间变化的。
很正常啊,这种配置就是负载均衡啊,nginx 根据一定的算法把请求转发到两台 tomcat 上,所以每次刷新的时候,都可能被转发到不同的 tomcat 上
法兰克鱿鱼
关键是看上去没有起作用!我tomcat1和tomcat2的index页面是不一样的,但是我每次localhost 不管怎么刷新都只显示tomcat1——也就是我配置的upstream里的第一个服务器——的index!唉
0
泡不烂的凉粉
泡不烂的凉粉
说明工作了。 你自己刷新,说明频率太低,看不出差别。 应该是已经工作的。 
0
法兰克鱿鱼
问题发现了 是tomcat的首页有问题!
0
FeiFan
FeiFan
晕, 原来是检查手段出问题了... 还好没折腾你个十天半个月什么的
返回顶部
顶部