nginx 配置7层代理

node2:/etc/nginx#cat /etc/nginx/nginx.conf
events
    {
        use epoll;
        worker_connections 65535;
        multi_accept on;
    }

http
    {
        include       mime.types;
        default_type  application/octet-stream;

        server_names_hash_bucket_size 256;
        client_header_buffer_size 256k;
        large_client_header_buffers 4 256k;
        client_max_body_size 128m;
        client_body_buffer_size 16m;

 fastcgi_buffer_size 256k;
 fastcgi_buffers 256 16k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 
 proxy_buffering on;
 proxy_buffer_size 1024k;
 proxy_buffers 32 8192k;
 proxy_busy_buffers_size 16384k;
 
        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 120s;
 keepalive_requests 30000;
 reset_timedout_connection on;
 client_body_timeout 3m;

        tcp_nodelay on;

        gzip on;
        gzip_min_length  16k;
        gzip_buffers     8 32k;
        gzip_http_version 1.1;
        gzip_comp_level 4;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6].";

        server_tokens off;
       
        log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
 #access_log off;

 upstream backend1 {
    server 192.168.137.3:9000      weight=5;
   
}

 upstream backend2 {
    server 192.168.137.3:80      weight=5;
   
}

##upstream backend 位置放错了, upstream位置应该放在http模块里面 但必须是在server模块的外面

 server
 {
 listen 8090 default_server backlog=1024;
 #server_name paytest.zjtlcb.com;
 index index.html index.htm;
 #root  /app/weblogic/html/;
 #root  /app_nas/apps/deploy/html/;

           location /nginx_status  {
 stub_status on;
 access_log off;
 allow 1.2.101.1;
 allow 1.2.101.2;
 allow 1.2.101.3;
 allow 1.2.101.4;
 allow 1.2.101.5;
 allow 1.2.101.6;
 allow 1.2.101.7;
 allow 1.2.101.8;
 deny all;
 }






 location ^~ /aaa 
 {
proxy_pass http://backend1/;
 proxy_connect_timeout 300;
 proxy_send_timeout 300;
 proxy_read_timeout 300;
 }



 location ^~ /bbb 
 {
proxy_pass http://backend2/;
 proxy_connect_timeout 300;
 proxy_send_timeout 300;
 proxy_read_timeout 300;
 }
 
 }
 #include vhost/*.conf;
}


1.##upstream backend 位置放错了, upstream位置应该放在http模块里面 但必须是在server模块的外面


2.
location = /uri
= 表示精确匹配


location ^~ /uri
^ 进行前缀匹配,~ 表示区分大小写


location ~ pattern
~ 区分大小写的匹配


location ~* pattern
~* 不区分大小写的匹配


location /uri
不带任何修饰符,也表示前缀匹配,但是在正则匹配之后


location /
通用匹配,任何未匹配到其它 location 的请求都会匹配到,相当于 switch 中的 default


location !~
区分大小写不匹配


location !~*
不区分大小写不匹配
————————————————
原文地址:https://www.cnblogs.com/hzcya1995/p/13348419.html