Heim  >  Artikel  >  Backend-Entwicklung  >  Nginx配置实现基于tcp协议的反向代理和负载均衡

Nginx配置实现基于tcp协议的反向代理和负载均衡

WBOY
WBOYOriginal
2016-08-08 09:24:191432Durchsuche

1.安装环境

系统环境:centos6.3_x64

软件版本:nginx-1.4.2.tar.gz  nginx_tcp_proxy_module-master.zip

2.软件安装cd /root/
wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.12/pcre-8.12.tar.gz
tar zxvf pcre-8.12.tar.gz
cd pcre-8.12/
./configure
make && make install
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
cd /root/
wget http://nginx.org/download/nginx-1.4.2.tar.gz
groupadd www
useradd -g www www
tar zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2/
 # 到 https://github.com/yaoweibin/nginx_tcp_proxy_module 这个地址下载nginx_tcp_proxy_module模块
unzip nginx_tcp_proxy_module-master.zip
patch -p1 
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=/usr/local/src/openssl-1.0.1c --add-module=/root/nginx-1.4.2/nginx_tcp_proxy_module-master
make && make install

3.nginx配置

 # cat /usr/local/nginx/conf/nginx.conf
user  www;
worker_processes  8;   #等同于CPU核数
error_log  logs/error.log;
pid        logs/nginx.pid;
events {
    use epoll;
    worker_connections  51200;
}
http {
    include       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  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    client_header_buffer_size 4k;
    large_client_header_buffers 4 16k;
    client_max_body_size 50m;
    client_body_buffer_size 256k;
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    proxy_send_timeout 600;
    proxy_buffer_size 64k;
    proxy_buffers   4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    gzip  on;
}
tcp {
#### dhserver ####
 upstream dh {
  server 192.168.5.83:26888;
  server 192.168.5.84:26888;
  check interval=3000 rise=2 fall=5 timeout=1000;
 }
 server {
  listen 26888;
  proxy_pass dh;
 }
####  mainserver ####
        upstream main {
 server 192.168.5.85:8088;
 server 192.168.5.86:8088;
  check interval=3000 rise=2 fall=5 timeout=1000;
        }
        server {
                listen 8088;
                proxy_pass main;
        }
#### files ####
        upstream files1 {
                server 192.168.5.93:30001;
                server 192.168.5.94:30001;
                check interval=3000 rise=2 fall=5 timeout=1000;
        }
        server {
                listen 30001;
                proxy_pass files1;
        }
        upstream files2 {
                server 192.168.5.93:30002;
                server 192.168.5.94:30002;
                check interval=3000 rise=2 fall=5 timeout=1000;
        }
        server {
                listen 30002;
                proxy_pass files2;
        }

}

PS:之前做了大量的NGINX代理测试,转发基于端口的服务,但是都以失败告终,只有这种方法可以尝试使用。

另已安装NGINX的服务器,可能需要卸载重装,因为打补丁阶段是在安装包里打的,至少目前为止我还没找到在已安装好的nginx服务上打补丁。README里也只是介绍在安装包下面打补丁。

以上就介绍了Nginx配置实现基于tcp协议的反向代理和负载均衡,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn