다섯 번 째 모듈 Nginx 부하 균형, 동정 분리 - (세 번 째 부분)
제1 부 Nginx 부하 균형 서버 의 업무 장면
배포 방향:
VMware 에
Ubuntu16.04 lts
대 를 설치 했다 (Ubuntu14.04
에 도 적용). :test.com -> 172.16.0.10
명칭.
IP
hostname
부하 균형 서버
172.16.0.10
MS
실제 서버
172.16.0.20
R1
실제 서버
172.16.0.30
R2
세 대의 서버 모두 Nginx 를 사용 합 니 다.
sudo apt-get install nginx
메모: Nginx 서버 의 프로필 을 설정 할 때 끝 에 분점 (;) 이 있어 야 합 니 다.
1. 부하 균형 서버 설정 MS
ip 사용hash 방식
IP 주소 해시 가 앞에서 말 한 두 가지 부하 균형 방안 중 같은 클 라 이언 트 의 연속 적 인 웹 요청 은 서로 다른 백 엔 드 서버 에 배 포 될 수 있 기 때문에 세 션 Session 과 관련 되면 세 션 이 복잡 할 수 있 습 니 다.흔히 볼 수 있 는 것 은 데이터베이스 기반 세 션 의 지속 화 입 니 다.위의 어 려 운 문 제 를 극복 하려 면 IP 주소 인 해시 기반 부하 균형 방안 을 사용 할 수 있다.이렇게 되면 같은 클 라 이언 트 의 연속 적 인 웹 요청 은 같은 서버 에 배포 되 어 처 리 됩 니 다.
Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-available/
에서 부하 균형 설정 파일 test.com
설정 을 만 듭 니 다.# test.com proxy_pass http://test.com !
upstream test.com {
ip_hash;
server 172.16.0.20:80;
server 172.16.0.30:80;
}
server {
listen 80;
root /home/scort/www;
index index.html index.htm;
server_name test.com;
location / {
# test.com upstream test.com !
proxy_pass http://test.com;
}
}
다음은 Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-enable/
에서 소프트 체인 설정 파일 test.com
cd /etc/nginx/sites-enable/
sudo ln -s /etc/nginx/sites-available/test.com
서버 다시 시작
sudo service nginx restart
2. 실제 서버 R1, R2
실제 서버 두 대 에 Nginx 서버 설정
Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-available/
에서 부하 균형 설정 파일 test.com
설정 을 만 듭 니 다.server {
listen 80;
root /home/scort/www;
index index.html index.htm;
server_name test.com;
location / {
try_files $url $uri/ =404;
}
}
다음은 Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-enable/
에서 소프트 체인 설정 파일 test.com
cd /etc/nginx/sites-enable/
sudo ln -s /etc/nginx/sites-available/test.com
다시 시작 nginx 저장
sudo service nginx restart
두 대의 실제 서버 의
sudo vim /var/www/html/index.html
내용 이 서로 다른 내용 을 표시 하 는 것 을 주의 하 세 요!이렇게 하면 부하 균형 의 효 과 를 볼 수 있다!3. 클 라 이언 트
클 라 이언 트 호스트 가 도 메 인 이름 을 지정 하고
sudo vim /etc/hosts
파일 을 열 어 다음 과 같은 내용 을 추가 합 니 다.172.16.0.10 test.com
브 라 우 저 접근:
http://test.com
두 번 째 부분 부하 균형 서버 MS 설정 Nginx 동정 분리레 퍼 런 스http://myangle89.iteye.com/blog/1808293
부하 균형 서버 (MS) 에서 Nginx 를 설정 합 니 다. Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-available/
에서 부하 균형 설정 파일 test.com
설정 은 다음 과 같 습 니 다.# test.com proxy_pass http://test.com !
upstream test.com {
ip_hash;
server 172.16.0.20:80;
server 172.16.0.30:80;
}
upstream html.com{
server 172.16.0.20:80;
}
server {
listen 80;
root /home/scort/www;
index index.html index.htm;
server_name test.com;
location / {
try_files $url $uri/ =404;
}
# Nginx , Nginx 。
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
{
# :
# root /home/scort/data;
#expires 3 , , ,
# expires 3d;
# :
proxy_set_header Host $host; # , : ; , proxy_pass !
proxy_set_header X-Real-IP $remote_addr; # IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://html.com;
}
# http://test.com, nginx.conf upstream test.com
location ~ .*\.(php|jsp|cgi)?$
{
proxy_set_header Host $host; # , : ; , proxy_pass !
proxy_set_header X-Real-IP $remote_addr; # IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://test.com;
}
}
설명: 설정 시 server 유지name 의 일치 성!
다음은 Nginx 의 사이트 설정 디 렉 터 리
/etc/nginx/sites-enable/
에서 소프트 체인 설정 파일 test.com
cd /etc/nginx/sites-enable/
sudo ln -s /etc/nginx/sites-available/test.com
첨부: Nginx 부하 균형의 4 가지 방안 설정 실례
http{
upstream sampleapp {
server <>;
server <>;
}
....
server{
listen 80;
...
server sampleapp;
location / {
proxy_pass http://sampleapp;
}
}
위 에 DNS 입구 가 1 개 만 upstream 절, 즉 sampleapp 에 삽입 되 었 고 뒤에 있 는 proxy패스 절 다시 언급.
http{
upstream sampleapp {
least_conn;
server <>;
server <>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
위의 예 는 upstream 절 에 least 를 추가 한 것 뿐 입 니 다.conn 설정.다른 설정 은 폴 링 설정 과 같 습 니 다.
http{
upstream sampleapp {
ip_hash;
server <>;
server <>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
위의 예 는 upstream 절 에 ip 를 추가 한 것 뿐 입 니 다.hash 설정.다른 설정 은 폴 링 설정 과 같 습 니 다.
http{
upstream sampleapp {
server <> weight=2;
server <>;
server <> weight=1 max_fails=2 fail_timeout=30s;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
위의 예 는 서버 주소 와 포트 후 weight = 2 의 설정 입 니 다. 이 는 3 개의 요청 을 받 을 때마다 앞의 2 개의 요청 이 첫 번 째 서버 에 배포 되 고 세 번 째 요청 은 두 번 째 서버 에 배 포 됩 니 다.또한 가중치 기반 부하 균형 과 IP 주소 기반 해시 의 부하 균형 을 조합 하여 사용 할 수 있다 는 점 을 설명 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.