centos7环境。  用upstream作负载均衡,proxy_pass 指向 upstream,会报404错误,不使用upstream,直接proxy_pass指向tomcat的ip和端口,可以正常访问,这是为什么呢?

解决方案 »

  1.   

    nginx配置文件看一看
      

  2.   


    nginx和tomcat都在虚拟机的centos7上worker_processes 1;
    error_log logs/error.log;
    events {
      worker_connections  1024;}http {  upstream backend {
        server 192.168.124.128:8080;  }
      server {
        listen 6699;
        location / {
          default_type text/html;
          proxy_pass http://backend;
        }
      }
    }
      

  3.   


    nginx和tomcat都在虚拟机的centos7上worker_processes 1;
    error_log logs/error.log;
    events {
      worker_connections  1024;}http {  upstream backend {
        server 192.168.124.128:8080;  }
      server {
        listen 6699;
        location / {
          default_type text/html;
          proxy_pass http://backend;
        }
      }
    }
      

  4.   

    server name xx.xx.xx.xx //或者跟你的backend
    proxy_set_header        Host $host:xx;  //加端口号
      

  5.   

    5楼说的对server {
            listen       666;
            server_name  localhost;   //有域名写域名
        location ~ / {
                proxy_pass http://web_server;
                proxy_set_header   Host             $host:$server_port;
                proxy_set_header   X-Forward-For    $remote_addr;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
       //这里都是匹配配置
                    }
      

  6.   

    这是我的nginx配置 # 负载均衡 + 集群
    #upstream test {
        #    server localhost:8180;
        #    server localhost:8082;
        #}
        #server {
        #    listen       80;                                                         
        #    server_name  localhost;                                               
        #    client_max_body_size 1024M;    #    location / {
        #        proxy_pass http://test;
        #        proxy_set_header Host $host:$server_port;
        #    }
        #}
    server localhost:8180;
    server localhost:8082;
    两个tomcat的端口
      

  7.   

    http{
        upstream tomcat{
        server 192.168.100.23:8080;
        server 192.168.100.14:8080;
        }
        server{
        location / {
            proxy_pass http://tomcat;
            }
        }
    }
    详情请看:http://blog.csdn.net/kairui123/article/details/71268773
      

  8.   

    这是我的配置,但是访问a.com的时候显示404:not found 
    #,求各位大神指教
    upstream a.com {
        #    server 100.4.148.2:80;
        #    server 100.4.148.3:80;
        #}
        #server {
        #    listen       80;                                                         
        #    server_name  a.com;                                               
        # 
        #    location / {
        #        proxy_pass http://a.com;
        #      proxy_set_header   Host             $host:$server_port;
                proxy_set_header   X-Forward-For    $remote_addr;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        #    }
        #}
      

  9.   


    nginx和tomcat都在虚拟机的centos7上worker_processes 1;
    error_log logs/error.log;
    events {
      worker_connections  1024;}http {  upstream backend {
        server 192.168.124.128:8080;  }
      server {
        listen 6699;
        location / {
          default_type text/html;
          proxy_pass http://backend;
        }
      }
    }
    把 proxy_pass http://backend; 改成 proxy_pass http://backend/;   加一个/,注意细节。