nginx 부하 균형 노트 TCP 긴 연결 유지

6998 단어 수송 하 다.
시작 특별 알림: nginx 를 열 때 오류 가 발생 할 수 있 습 니 다.
다음 오류 가 발생 했 습 니 다: nginx: [error] open () "/ usr / local / nginx / logs / nginx. pid" failed (2: 그러한 파일 이나 디렉토리 가 없습니다)
이것 을 실행 하면 해결 할 수 있 습 니 다: / usr / local / nginx / sbin / nginx - c / usr / local / nginx / conf / nginx. conf
nginx 사용자 정의 부하 균형 노트:
특별 알림: 1 - 4 단계 가 존재 하면 다운로드 할 필요 가 없습니다.
설치 에 필요 한 환경
Nginx 는 C 언어 개발 로 리 눅 스에 서 실행 을 권장 하 며, 물론 윈도 버 전도 설치 할 수 있 으 며, 이 편 은 CentOS 7 을 설치 환경 으로 사용한다.
1. gcc 설치 nginx 는 홈 페이지 에서 다운로드 한 원본 코드 를 컴 파일 하고 gcc 환경 에 의존 하 며 gcc 환경 이 없 으 면 설치 해 야 합 니 다: yum install gcc - c +
2. PCRE pcre - devel 설치 PCRE (Perl Compatible Regular Expressions) 는 perl 호 환 을 포함 한 정규 표현 식 라 이브 러 리 입 니 다.nginx 의 http 모듈 은 pcre 를 사용 하여 정규 표현 식 을 해석 하기 때문에 Liux 에 pcre 라 이브 러 리 를 설치 해 야 합 니 다. pcre - devel 은 pcre 를 사용 하여 개발 한 2 차 개발 라 이브 러 리 입 니 다.nginx 도 이 라 이브 러 리 가 필요 합 니 다.명령: yum install - y pcre pcre - devel
3. zlib 설치 zlib 라 이브 러 리 는 여러 가지 압축 과 압축 을 푸 는 방식 을 제공 합 니 다. nginx 는 zlib 를 사용 하여 http 패키지 의 내용 을 gzip 하기 때문에 Centos 에 zlib 라 이브 러 리 를 설치 해 야 합 니 다.yum install -y zlib zlib-devel
4. OpenSSL 설치 / / 이것 은 https 프로 토 콜 OpenSSL 을 지원 하기 위 한 강력 한 보안 소켓 암호 라 이브 러 리 입 니 다. 주요 암호 알고리즘, 자주 사용 하 는 키 와 인증서 패 키 징 관리 기능 과 SSL 프로 토 콜 을 포함 하고 테스트 나 다른 목적 으로 사용 할 수 있 는 다양한 응용 프로그램 을 제공 합 니 다.nginx 는 http 프로 토 콜 뿐만 아니 라 https (즉 ssl 프로 토 콜 에서 http 전송) 도 지원 하기 때문에 Centos 에 OpenSSL 라 이브 러 리 를 설치 해 야 합 니 다.yum install -y openssl openssl-devel
nginx 설치 패키지 다운로드: wgethttp://nginx.org/download/nginx-1.7.2.tar.gz 설치 패키지 tcp 지원 설치 패키지:https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zip
스트레스 를 풀다
       :
tar -zxvf nginx-1.7.2.tar.gz

6. 설정, 컴 파일 설 치 는 먼저 압축 을 푸 는 nginx 디 렉 터 리 에 들 어 갑 니 다 (저 는 / alidata / server / nginx 디 렉 터 리 에 있 습 니 다) 1. TCP 서비스 patch - p1 < / mingshine / nginx 를 추가 합 니 다.tcp_proxy_module-master/tcp.patch 1、 ./configure --add-module=/mingshine/nginx_tcp_proxy_module - master / (특히 알림: TCP 퍼 가기 와 HTTPS 를 사용 해 야 하기 때문에 이 명령 을 사용 해 야 합 니 다. 필요 하지 않 으 면... / configure 라 는 명령 을 사용 하면 됩 니 다. 하지만 우 리 는 설정 을 내 려 야 합 니 다. 어쨌든 있 는 것 이 없 는 것 보다 좋 습 니 다)이 오 류 를 보고 하면:. / configure: error: SSL 모듈 은 OpenSSL 라 이브 러 리 를 필요 로 합 니 다. 모듈 을 사용 하지 않도록 설정 하거나 OpenSSL 라 이브 러 리 를 시스템 에 설치 하거나 nginx 를 사용 하여 소스 에서 정적 으로 OpenSSL 라 이브 러 리 를 빌 드 할 수 있 습 니 다 -- with - openssl = option.
    openssl yum remove  openssl-devel

2、make 3、make install
설치 경로 찾기: whereis nginx
이상 저 희 는 nginx 서 비 스 를 설치 한 셈 입 니 다. 지금 설정 이 필요 합 니 다.
1. nginx 가 자동 으로 작 동 합 니 다.
  rc.local          。
vi /etc/rc.local

     /usr/local/nginx/sbin/nginx

      :(  /etc  )
chmod 755 rc.local

2. nginx 명령 은 다음 과 같 습 니 다.
cd /usr/local/nginx/sbin/  (   nginx    )
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload


./nginx -s quit:         nginx            。
./nginx -s stop:         nginx  id   kill        。

  nginx  :
ps aux|grep nginx

두 번 째 단계: nginx. cof 설정 (내 디 렉 터 리 는: / usr / local / nginx / conf)
https 리 트 윗 을 지원 해 야 하기 때문에 우 리 는 작업 을 해 야 합 니 다: 연결:http://www.cnblogs.com/saneri/p/5391821.html
1. 우선 기계 에 openssl 과 openssl - devel 이 설치 되 어 있 는 지 확인 합 니 다. 이것 은 우리 가 이미 설치 되 어 있 기 때문에 무시 할 수 있 습 니 다. \ # yum install openssl \ # yum install openssl - devel
2. 서버 비밀 키 를 만 듭 니 다. 명령 은 암 호 를 입력 하 게 합 니 다: openssl genrsa - des 3 - out server. key
3. 서명 요청 인증서 만 들 기 (CSR): openssl req - new - key server. key - out server. csr
4. SSL 이 지원 하 는 Nginx 를 불 러 오고 상기 비밀 키 를 사용 할 때 필요 한 암 호 를 제거 합 니 다: cp server. key server. key. org openssl rsa - in server. key. org - out server. key
5. nginx 마지막 태그 인증 서 를 설정 하려 면 상기 비밀 키 와 CSR: openssl x509 - req - days 365 - in server. csr - signkey server. key - out server. crt 를 사용 하 십시오.
내 설정 정 보 는 다음 과 같다.
#==================================================================================================
#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; }
tcp { timeout 1d; proxy_read_timeout 10d; proxy_send_timeout 10d; proxy_connect_timeout 30; upstream ssh_116 { # simple round-robin server 127.0.0.1:9797; server 10.30.90.111:9797; check interval=3000 rise=2 fall=5 timeout=1000; #check interval=3000 rise=2 fall=5 timeout=1000 type=ssl_hello; #check interval=3000 rise=2 fall=5 timeout=1000 type=http; #check_http_send “GET / HTTP/1.0\r\r”; #check_http_expect_alive http_2xx http_3xx; } server { listen 63005; proxy_pass ssh_116; so_keepalive on; tcp_nodelay on; } }
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  0;
keepalive_timeout  65;

#gzip  on;


upstream servers.http.mingshine.com { 
	server 127.0.0.1:8080;  
	server 10.30.90.111:8080; 
}


server{

listen 60180; 
server_name http.mignshine.com; 
location / { 
	proxy_pass http://servers.http.mingshine.com; 
	proxy_set_header Host $host; 
	proxy_set_header X-Real-IP $remote_addr; 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
	} 
}


upstream servers.https.mingshine.com { 
	server 127.0.0.1:9898;
	server 127.0.0.1:8888;

}


server{

listen 60443; 
server_name https.mingshine.com; 
ssl                  on;        
ssl_certificate      /usr/local/nginx/sbin/server.crt;      
ssl_certificate_key  /usr/local/nginx/sbin/server.key;      
ssl_session_timeout  5m;
ssl_protocols  SSLv2 SSLv3 TLSv1;        
ssl_ciphers  HIGH:!aNULL:!MD5;              
ssl_prefer_server_ciphers   on;             

location / { 
	proxy_pass https://servers.https.mingshine.com; 
	proxy_set_header Host $host; 
	proxy_set_header X-Real-IP $remote_addr; 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
	} 
}



# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}


# HTTPS server
#
#server {
#    listen       443 ssl;
#    server_name  localhost;

#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;

#    ssl_session_cache    shared:SSL:1m;
#    ssl_session_timeout  5m;

#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers  on;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

}
#==================================================================================================

좋은 웹페이지 즐겨찾기