1、socket使用的是TCP/IP协议,编译安装nginx必须启用--with-stream模块。在stream中配置请求转发
./configure [--prefix=/usr/local/nginx:指定安装目录】 --with-stream
make
make install
2、在配置文件nginx.conf中加stream模块
worker_processes 1;
events {
worker_connections 1024;
}
# 此为TCP转发请求 stream
stream {
log_format proxy '$remote_addr - [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received"
"$upstream_connect_time" '
'$remote_addr $remote_port $server_addr $server_port';
include ./conf.d/*.tcpstream;
# 后端指向 server 的 8085 端口 stream_backend 组
upstream stream_backend {
server 10.50.2.11:8085;
server 10.50.2.19:8085;
}
# 后端指向 server 的 8090 端口 cns组
upstream cns {
server 10.50.2.11:8090;
server 10.50.2.19:8090;
}
server {
# 本机监听端口 8080
listen 8080;
# 请求抛给 stream_backend 组
proxy_pass stream_backend;
access_log logs/host.access.log proxy;
}
server {
# 本机监听端口 8090
listen 8090;
# 请求抛给 cns 组
proxy_pass cns;
access_log logs/host.access.log proxy;
}
}
# 此为HTTP 转发请求 http
http {
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;
gzip_comp_level 9;
gzip_types text/css text/xml application/javascript;
gzip_vary on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 后端指向 server 的 8585 端口 cns_node 组
upstream cns_node {
server 10.50.2.51:8585 weight=3;
server 10.50.2.59:8585 weight=3;
}
server {
listen 8585;
server_name umout.com;
access_log /etc/nginx/logs/server02_access.log main;
location /{
proxy_pass http://cns_node1;
include /etc/nginx/proxy.conf;
}
}
}