Ngnix 부하 균형 설치 및 설정
Nginx 는 고성능 http 서버 / 리 버스 프 록 시 및 이메일 (IMAP / POP 3) 프 록 시 서버 입 니 다.러시아의 프로그램 디자이너 Igor Sysoev 가 개발 한 공식 테스트 nginx 는 5 만 개의 병렬 링크 를 지탱 할 수 있 고 cpu, 메모리 등 자원 소모 가 매우 낮 으 며 운행 이 매우 안정 적 입 니 다.
2. ngnix 응용 장면
http 서버.Nginx 는 http 서 비 스 를 독립 적 으로 제공 할 수 있 는 http 서비스 입 니 다.웹 페이지 정적 서버 를 만 들 수 있 습 니 다.
가상 호스트.한 서버 에서 여러 사 이 트 를 가상 으로 만 들 수 있다.예 를 들 어 개인 사이트 에서 사용 하 는 가상 호스트.
역방향 대리, 부하 균형.사이트 의 방 문 량 이 어느 정도 에 이 르 렀 을 때 한 대의 서버 가 사용자 의 요 구 를 만족 시 키 지 못 할 때 여러 대의 서버 클 러 스 터 로 nginx 를 사용 하여 역방향 프 록 시 를 할 수 있어 야 합 니 다.또한 여러 대의 서버 는 평균 적 으로 부 하 를 분담 할 수 있 으 며, 한 서버 의 부하 가 높 아 지연 되 지 않 아 한 서버 가 방치 되 어 있 는 경우 도 없다.
3. ngnix 설치
3.1 다운로드
http://nginx.org/
3.2 설치
1. gcc 를 설치 하 는 환경.yum install gcc-c++
2. pcre 라 이브 러 리 설치.yum install -y pcre pcre-devel
3. zlib 라 이브 러 리 를 설치 합 니 다.yum install -y zlib zlib-devel
4. openssl 라 이브 러 리 를 설치 합 니 다.yum install -y openssl openssl-devel
5. nginx 의 소스 패 키 지 를 Liux 시스템 에 전달 합 니 다.
6. 압축 풀기
7. 압축 을 푼 디 렉 터 리 에 들 어가 configure 명령 으로 MakeFile 파일 을 만 듭 니 다.
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
8. 폴 더 만 들 기
mkdir /var/temp/nginx/client –p
9. make 명령 make 실행
10, 실행 make install 명령 make install
11. 설치 완료
3.3 시작 ngnix
1. ngnix sbin 디 렉 터 리 에 들 어가 기
cd /usr/local/ngnix/sbin
2. 명령 수행
./nginx
3, ngnix 시작 여부 확인
ps –ef | grep ngnix
3.4 ngnix 닫 기
첫 번 째 방법:. / nginx - s stop
두 번 째 방식 (추천):. / nginx - s quit
3.5 재 부팅 ngnix
1. 먼저 닫 고 시작 합 니 다.
2. 프로필 새로 고침.
./ngnix –s reload
3.6 ngnix 방문
기본 값 은 80 포트 입 니 다.방화벽 을 닫 아야 합 니 다.
방화벽 닫 기: chkconfig iptables off
4. 가상 호스트 설정
ngnix 프로필: / usr / local / nginx / conf / nginx. conf
4.1 포트 를 통 해 서로 다른 가상 컴퓨터 를 구분한다
#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;
}
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;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
}
여러 개의 server 를 설정 할 수 있 고 여러 개의 가상 호스트 를 설정 할 수 있 습 니 다.
가상 호스트 추가:
#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;
}
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;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
}
프로필 다시 불 러 오기
/nginx -s reload
4.2 도 메 인 이름 으로 가상 호스트 구분
이 컴퓨터 host 파일 에 테스트 에 사용 할 도 메 인 두 개 를 설정 합 니 다.
window 의 hosts 파일 수정: (C: \ Windows \ System 32 \ \ drivers \ \ etc)
ngnix 서버 주소: ceshi1. com
ngnix 서버 주소: ceshi2. com
ngnix 프로필
#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;
}
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;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
server {
listen 80;
server_name ceshi1.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
}
server {
listen 80;
server_name ceshi2.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html81;
index index.html index.htm;
}
}
}
5. ngnix 역방향 에이전트
두 도 메 인 이름 은 같은 nginx 서버 를 가리 키 며 사용자 가 서로 다른 도 메 인 이름 을 방문 하여 서로 다른 웹 페이지 내용 을 표시 합 니 다.
1. tomcat 두 개 설치.각각 8080 과 8081 에서 운행 한다.
2. tomcat 를 시작 합 니 다.
3. ngnix 파일 설정
upstream tomcat1 {
server 192.168.80.129:8080;
}
server {
listen 80;
server_name ceshi1.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat1;
index index.html index.htm;
}
}
upstream tomcat2 {
server 192.168.80.129:8081;
}
server {
listen 80;
server_name ceshi2.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat2;
index index.html index.htm;
}
}
4. 프로필 다시 불 러 오기
6. ngnix 부하 균형
만약 하나의 서비스 가 여러 서버 에서 제공 된다 면, 부 하 를 서로 다른 서버 로 분배 하여 처리 해 야 하 며, 부하의 균형 이 필요 하 다.
upstream 에 여러 개의 서비스 주 소 를 설정 하면 됩 니 다.
upstream tomcat2 {
server 192.168.80.129:8081;
server 192.168.80.130:8082;
}
서버 의 실제 상황 에 따라 서버 의 가중치 를 조정 할 수 있다.가중치 가 높 을 수록 분배 요청 이 많 고 가중치 가 낮 을 수록 요청 이 적다.기본적으로 다 1 이에 요.
upstream tomcat2 {
server 192.168.80.129:8081;
server 192.168.80.130:8082 weight=2;
}
다음으로 전송:https://www.cnblogs.com/jichi/p/10535166.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.