nginx http 에이전트, 부하 균형, tcp 에이전트 전송 설정
17878 단어 Nginx
#proxy ngx https, https squid
server {
listen 9998;
allow 192.168.0.0/24;
deny all;
location / {
access_log /data/logs/proxy_access.log main;
proxy_redirect off;
proxy_pass http://$http_host$request_uri;
proxy_set_header Host $host:$server_port; # : IP:port
proxy_set_header X-Real-IP $remote_addr; # IP
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
}
}
server {
listen 21000;
server_name 127.0.0.1;
location / {
proxy_read_timeout 1800;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://10.10.20.34:21000;
}
}
cat vhosts/down_fdfs_19080.conf
server {
listen 19080;
server_name 127.0.0.1;
location / {
proxy_read_timeout 1800;
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://down_fdfs;
}
}
cat upstream/down_fdfs.conf
upstream down_fdfs{
server 10.10.20.54:80 max_fails=2 fail_timeout=30s weight=10;
server 10.10.20.55:80 max_fails=2 fail_timeout=30s weight=10;
keepalive 64;
}
location /api_test/ {
default_type 'text/plain';
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_connect_timeout 10;
proxy_send_timeout 30;
proxy_read_timeout 30;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://api.system/;
}
upstream api.system{
server 192.168.6.119:8901 max_fails=2 weight=1;
keepalive 64;
}
2. nginx TCP 역방향 에이전트
1. 관련 모듈 컴 파일
TCP 프 록 시 와 부하 균형 을 지원 하 는 stream 모듈
ngx_stream_core_module
은 1.90 버 전 이후 에 사 용 됩 니 다.그러나 기본적으로 설치 되 지 않 습 니 다. 컴 파일 할 때 지정 한 – with - stream 인 자 를 통 해 이 모듈 을 활성화 해 야 합 니 다.wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip
unzip master.zip
cd nginx-1.8.1
patch -p1 <.. class="hljs-preprocessor">.patch
./configure --add-module=../nginx_tcp_proxy_module-master
make
make install
2. nginx tcp 에이전트 설정
= = 주의: 새 버 전 키 워드 는 stream 이 고, 낮은 버 전 은 tcp = =
stream {
upstream backend {
hash $remote_addr consistent;
server backend1.example.com:12345 weight=5;
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}
server {
listen [::1]:12345;
proxy_pass unix:/tmp/stream.socket;
}
}
events { ...
}
http { ...
}
tcp {
upstream backend {
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
}
server {
listen 2345;
proxy_pass backend;
}
}
3. nginx tcp proxy 퍼 가기 시간 초과 문제
= = nginx tcp proxy 연결 유지 설정 = =
앞에서
Nginx tcp proxy module
시험 적 으로 사용 한 설정 에 따 르 면 테스트 환경 에서 tcp 연결 이 자주 끊 기 는 것 을 발견 했다.사실은 몇 개의 설정 이 없어 서 README 의 설정 은 생산 환경 에 사용 할 수 없다.설정 은 다음 과 같 습 니 다. 현재 작업 이 정상 입 니 다.tcp {
timeout 1d;
proxy_read_timeout 10d;
proxy_send_timeout 10d;
proxy_connect_timeout 30;
# rsync
upstream proxy_rsync {
server 10.10.20.42:30873 max_fails=3;
}
server {
listen 30888;
proxy_pass proxy_rsync;
}
}
이 출처 를 반드시 보관 하 십시오:http://blog.csdn.net/fgf00/article/details/79276127
첨부: nginx 최적화 프로필 참조
주: 마지막 몇 줄 의 tcp 부분 을 컴 파일 하지 않 으 면 설명 할 수 있 습 니 다.
user nginx nginx;
worker_processes 24;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
error_log /data/logs/nginx/error.log notice;
pid logs/nginx.pid;
events {
use epoll;
multi_accept on;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
charset UTF-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 128k;
large_client_header_buffers 8 128k;
client_max_body_size 20g;
sendfile on;
tcp_nopush on;
open_file_cache max=51200 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 1;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
server_tag off;
server_info off;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 512k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;
fastcgi_intercept_errors on;
client_header_timeout 6m;
client_body_timeout 6m;
send_timeout 6m;
connection_pool_size 256;
request_pool_size 8k;
output_buffers 8 64k;
postpone_output 1460;
client_body_buffer_size 1024k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain application/x-javascript application/json text/css application/xml;
gzip_vary on;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_ignore_client_abort on;
proxy_next_upstream error;
proxy_buffer_size 64k;
proxy_temp_path /dev/shm/nginx_proxy_temp;
proxy_cache_path /dev/shm/proxy_cps_cache levels=1:2 keys_zone=cache_cps:1024m inactive=2d max_size=8g;
proxy_cache_path /dev/shm/proxy_cpsSimhash_cache levels=1:2 keys_zone=cache_cpsSimhash:1024m inactive=2d max_size=8g;
proxy_cache_path /dev/shm/proxy_search_cache levels=1:2 keys_zone=cache_search:1024m inactive=2d max_size=8g;
proxy_pass_header Set-Cookie;
log_format main '$http_host $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for" "$upstream_cache_status" $request_time $host';
include upstream/*.conf;
include vhosts/*.conf;
}
tcp {
timeout 1d;
proxy_read_timeout 10d;
proxy_send_timeout 10d;
proxy_connect_timeout 30;
include tcp_proxy/*.conf;
}
이 출처 를 반드시 보관 하 십시오:http://blog.csdn.net/fgf00/article/details/79276127
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.