nginx 配置 conf stream


nginx從1.9.0版本開始,新增了ngx_stream_core_module模塊,使nginx支持四層負載均衡。默認編譯的時候該模塊並未編譯進去,需要編譯的時候添加--with-stream參數,使其支持stream代理

- nginx stream配置

https://nginx.org/en/docs/stream/ngx_stream_core_module.html

worker_processes auto;
error_log /var/log/nginx/error.log info;
events {
    worker_connections  1024;
}

# stream段的配置要與http段在同級目錄
stream {
    upstream app {
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:8081;
}

server {
    listen 8000;
    proxy_pass app;
    }
}

#######################################
stream {
    upstream zk_server {
        server 172.16.3.8:2181 weight=5;
    }
    server {
        listen 2181 tcp;
        proxy_responses 1;
        proxy_timeout 20s;
        proxy_pass zk_server;
    }
}

#######################################
upstream job {
    server 127.0.0.1:8088;
}

server {
    listen       80;
    server_name  jobs.example.com;
    access_log  /var/log/nginx/job.log  main;
    client_max_body_size 0;
    location / {
        root  html;
        index index.html index.htm;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Referer $http_referer;
        proxy_pass http://job;
    }
}

#######################################
# 使用http中的upstream配置
http {
	upstream websrvs {
		server 10.0.0.7:80 weight=1;
		server 10.0.0.17:80 weight=1;
	}
	server {
		listen 80;
		location / {
			proxy_pass http://websrvs/;
		}
	}
}


#如果location定義其uri時使用了正則表達式模式(包括~,~*,但不包括^~),則proxy_pass之后必須不能使用uri; 用戶請求時傳遞的uri將直接附加至后端服務器之后
server {
    server_name HOSTNAME;
    location ~|~* /uri/ {
        proxy_pass http://host:port;    #proxy_pass后面的url 不能加/
    }
}

proxy_pass服務url配置

location /web {
    index index.html
    proxy_pass http://10.0.0.1:8080;
    # 8080后無 / 符號,需要將localtion后面url附加到proxy_pass指定的url后面,類似root
    ##proxy_pass后不帶/符號,訪問 http://nginx/web 等於訪問  http://10.0.0.1:8080/web/
}


location /web {
    index index.html
    proxy_pass http://10.0.0.1:8080/;
    # 8080后有 / 符號,相當於置換,即訪問/web時實際返回proxy_pass指定url帶/的內容,類似alias
    ##proxy_pass后帶/符號,訪問http://nginx/web/index.html 等於訪問 http://10.0.0.1:8080
}

- 生產配置

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    proxy_redirect          off;
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size    10m;
    client_body_buffer_size   128k;
    proxy_connect_timeout   5s;
    proxy_send_timeout      5s;
    proxy_read_timeout      5s;
    proxy_buffer_size        4k;
    proxy_buffers           4 32k;
    proxy_busy_buffers_size  64k;
    proxy_temp_file_write_size 64k;
    
    upstream fn {
    server 192.168.99.104:6501;
    server 192.168.99.104:6502;
    server 192.168.99.104:6503;
    }
    server {
        listen       6601;
        server_name  192.168.99.104; 
        location / {  
            proxy_pass   http://fn;
            #proxy_set_header Host $host;
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forearded-For $proxy_add_x_forwarded_for;

            #proxy_cache my_cache
            #proxy_cache_key $host$uri#is_args$args;
            #proxy_cache_valid  200 304  302 1d;
            index  index.html index.htm;
        }

    }
}

PS

nginx常用代理配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM