nginx 转发mongo接口

389 阅读1分钟

mongo接口为tcp请求转发规则要写在http外面

配置文件基于原文件修改,增加部分已经标出

本机monodb地址为127.0.0.1:30017

监听10017的请求并转发到30017


user  nginx;
worker_processes  1;

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


events {
    worker_connections  1024;
}

#以下为新加内容
stream {
        upstream mongodb{
        server 127.0.0.1:30017;
        }
        
        server {
        
        listen 10017;
       
        proxy_pass mongodb;
        }
 }
#以上为新加内容

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;

    include /etc/nginx/conf.d/*.conf;

}

nginx修改返回头

docker run  --name nginx-zdr --network=host  --restart=always -v /data/zdr/nginx.conf:/etc/nginx/nginx.conf -d  nginx


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;

    include /etc/nginx/conf.d/*.conf;
    server {
        listen    10086;   #监听端口
        location / {
           proxy_pass http://127.0.0.1:10019/;	 #转发地址
           proxy_hide_header 'Content-Type';  #先删除
           add_header 'Content-Type' 'application/json;charset=UTF-8'; #再添加
        }


    }
}

nginx mirror

docker run  --name nginx-zdr --network=host  --restart=always -v /data/zdr/nginx.conf:/etc/nginx/nginx.conf -d  nginx:1.21.1-alpine-perl


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;

    include /etc/nginx/conf.d/*.conf;
    server {
        listen    10086;   
        location /VIID/XXX {
           proxy_pass http://x.x.x.x:8080/VIID/XXX;   #对该地址进行mirror
           mirror /mirror;
        }
       location / {
           proxy_pass http://x.x.x.x:8080/;	      #其他地址原样放行
        }
       location = /mirror {
            internal;
            proxy_pass http://x.x.x.x:8081/VIID/xxx;   #改成复制转发的目标url
        }

    }
}

本文已参与「新人创作礼」活动,一起开启掘金创作之路