Nginx 의 세 가지 응용 장면 소개
한 서버 에서 여러 사 이 트 를 시작 하 는 것 이다.
어떻게 서로 다른 사 이 트 를 구분 합 니까?
1. 도 메 인 이름 이 다르다
2. 포트 가 다르다
1.1. 포트 를 통 해 서로 다른 가상 컴퓨터 를 구분한다.
Nginx 프로필:
/usr/local/nginx/conf/nginx.conf
#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;
}
}
프로필 다시 불 러 오기
[root@localhost nginx]# sbin/nginx -s reload
1.2. 도 메 인 이름 으로 가상 호스트 구분
1, 2, 1. 도 메 인 이름 이 뭐 예요?
도 메 인 이름 은 사이트 다.
www.baidu.com
www.taobao.com
www.jd.com
Tcp/ip
Dns 서버: 도 메 인 이름 을 ip 주소 로 해석 합 니 다. 도 메 인 이름과 ip 의 맵 관 계 를 저장 합 니 다.
1 급 도 메 인 이름:
Baidu.com
Taobao.com
Jd.com
2 단계 도 메 인 이름:
www.baidu.com
Image.baidu.com
Item.baidu.com
3 단계 도 메 인 이름:
1.Image.baidu.com
Aaa.image.baidu.com
하나의 도 메 인 이름 은 하나의 ip 주소 에 대응 하고 하나의 ip 주 소 는 여러 도 메 인 이름 으로 연결 할 수 있 습 니 다.
로 컬 테스트 는 hosts 파일 을 수정 할 수 있 습 니 다.
window 의 hosts 파일 수정: (C: \ Windows \ System 32 \ \ drivers \ \ etc)
도 메 인 이름과 ip 의 맵 관 계 를 설정 할 수 있 습 니 다. hosts 파일 에 도 메 인 이름과 ip 의 대응 관 계 를 설정 하면 dns 서버 를 가지 않 아 도 됩 니 다.
1.2.2. Nginx 설정
#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 www.taobao.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-taobao;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.baidu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-baidu;
index index.html index.htm;
}
}
도 메 인 이름 설정:
192.168.25.148 www.taobao.com
192.168.25.148 www.baidu.com
역방향 대리
프 록 시 서버 를 반대로 해서 어느 서버 가 서 비 스 를 제공 할 지 결정 합 니 다.
프 록 시 서버 로 돌아 가 서버 를 제공 하지 않 습 니 다. 요청 한 퍼 가기 이기 도 합 니 다.
2.2. Nginx 역방향 에이전트 실현
두 도 메 인 이름 은 같은 nginx 서버 를 가리 키 며 사용자 가 서로 다른 도 메 인 이름 을 방문 하여 서로 다른 웹 페이지 내용 을 표시 합 니 다.
두 도 메 인 이름 은 www. sian. com. cn 과 www. sohu. com 입 니 다.
nginx 서버 사용 가상 컴퓨터 192.168.101.3
첫 번 째 단계: 두 개의 tomcat 를 설치 하여 각각 8080 과 8081 포트 에서 실 행 됩 니 다.
두 번 째 단계: tomcat 두 개 를 시작 합 니 다.
세 번 째 단계: 역방향 프 록 시 설정
upstream tomcat1 {
server 192.168.25.148:8080;
}
server {
listen 80;
server_name www.sina.com.cn;
#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.25.148:8081;
}
server {
listen 80;
server_name www.sohu.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcat2;
index index.html index.htm;
}
}
네 번 째 단계: nginx 설정 파일 다시 불 러 오기
다섯 번 째 단계: 도 메 인 이름 설정
hosts 파일 에 도 메 인 이름과 ip 의 맵 관 계 를 추가 합 니 다.
192.168.25.148 www.sina.com.cn
192.168.25.148 www.sohu.com
tomcat 날짜 보기: tail - f tomcat / logs / catalina. out
부하 균형
만약 하나의 서비스 가 여러 서버 에서 제공 된다 면, 부 하 를 서로 다른 서버 로 분배 하여 처리 해 야 하 며, 부하의 균형 이 필요 하 다.
upstream tomcat2 {
server 192.168.25.148:8081;
server 192.168.25.148:8082;
}
서버 의 실제 상황 에 따라 서버 의 가중치 를 조정 할 수 있 습 니 다. 가중치 가 높 을 수록 할당 요청 이 많 고 가중치 가 낮 을 수록 요청 이 적 습 니 다. 기본 값 은 모두 1 입 니 다.
upstream tomcat2 {
server 192.168.25.148:8081;
server 192.168.25.148:8082 weight=2; }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.