注意:nginx 1.9 以上的版本才支持 tcp 连接的功能
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream test-server {
server 20.0.1.104:12000;
}
upstream test-server-sr {
server 20.0.1.104:11000;
}
#test
upstream test-server-sr-test {
server 20.0.1.104:11001;
}
upstream test-server-test {
server 20.0.1.104:12001;
}
server {
#so_keepalive=on 保证连接持续
listen 12000 so_keepalive=on;
#listen 12000;
# proxy_connect_timeout 1s;
# # proxy_timeout 3s;
proxy_pass test-server;
}
server {
listen 11000;
#proxy_connect_timeout 1s;
#proxy_timeout 3s;
proxy_pass test-server-sr;
}
server {
listen 12001 so_keepalive=on;
#proxy_connect_timeout 1s;
#proxy_timeout 3s;
proxy_pass test-server-test;
}
server {
listen 11001 so_keepalive=on;
#proxy_connect_timeout 1s;
#proxy_timeout 3s;
proxy_pass test-server-sr-test;
}
}
http {
include mime.types;
default_type application/octet-stream;
# log_format 日志格式
log_format main '$remote_addr [$time_local] $upstream_addr $upstream_status $upstream_response_time "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
log_format cachelog '$time_local - $upstream_cache_status - Cache-Control:$upstream_http_cache_control - $request($status) - ';
access_log logs/access.log main;
sendfile on;
tcp_nopush on;
proxy_ignore_client_abort on;
keepalive_timeout 65;
#keepalive_timeout 1000;
charset utf-8;
gzip on;
gzip_min_length 10k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain text/javascript application/javascript application/x-javascript text/css application/xml application/octet-stream;
gzip_vary on;
upstream tomcat-cc-admin {
#ip_hash;
server 20.0.1.103:8080;
}
upstream tomcat-cc-service {
#ip_hash;
server 20.0.1.103:8081;
}
server {
listen 80;
server_name 20.0.1.101;
#server_name test.com;
#charset koi8-r;
access_log logs/testsys.access.log main;
#request proxy server
location /test-admin {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat-cc-admin;
proxy_redirect default;
client_max_body_size 50m;
}
location /test-service-impl {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat-cc-service;
proxy_redirect default;
client_max_body_size 50m;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /nginx_status{
stub_status on;
access_log off;#指定全局的 log 是否打开
allow all;
# deny all;
}
}
}
NGINX tcp 配置官方文档:
tcp 连接配置官方文档