[Nginx 필기] nginx 프로필 에 대한 구체 적 인 설명
분명 하 다.nginx 의 강력 한 장점 을 발휘 하 는 전 제 는 설정 파일 을 숙지 하고 합 리 적 인 설정 을 하 는 것 입 니 다.nginx 설정 을 배 울 때.가장 중요 한 것 은 다음 과 같은 개념 을 세 우 는 것 이다.
The most important is that nginx is a reverse proxy first and HTTP server second, its first concern is not files but rather URLs, this changes the way we have to configure nginx.
즉, nginx 의 강력 한 점 은 고성능 의 역방향 대리 기능 (요청 을 받 고 하류 에 진정 으로 요청 을 처리 하 는 server 에 전달 하 며 하류 응답 을 기다 리 고 요청 발기인 에 게 되 돌아 가 는 것) 이다.그 다음으로 일반 웹 서버 처럼 정적 파일 접근 기능 을 제공 할 수 있다.
우 리 는 nginx 소스 코드 를 컴 파일 하여 설 치 된 기본 설정 파일 (conf / nginx. conf. default) 을 예 로 들 었 습 니 다.중요 한 설정 항목 에 대해 설명 합 니 다
#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;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# 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;
# }
#}
}
1. Nginx 프로필 블록 등급 관계 nginx 설정 파일 을 익히 려 면 먼저 블록 구분 과 블록 간 의 등급 관 계 를 잘 알 아야 합 니 다.UNDERSTANDING THE NGINX CONFIGURATION INHERITANCE MODEL 은 각 블록 의 등급 구분, 등급 또는 배치 항목 유형, 배치 항목 의 계승 관계 와 내장 블록 정의 등에 대해 구체 적 이 고 사례 가 있 는 설명 을 했 는데 여기 서 더 이상 언급 하지 않 습 니 다. 우 리 는 세 개의 블록 간 의 등급 관 계 를 기억 해 야 한다. http - > server - > location 은 nginx 설정 과정 에서 관건 적 인 블록 이다.2. 서버 블록 (가상 호스트) server block 의 주요 목적 은 virtual server 를 만 드 는 것 입 니 다. 가장 중요 한 설정 항목 은 3 개 입 니 다. 1) listen 검색 주소, port 번호, UNIX - domain socket 의 경 로 를 설정 합 니 다.검색 주소 (ip 또는 hostname) 만 설정 할 수 있 습 니 다.이 경우 기본 검색 80port 도 검색 port 번호 만 지정 할 수 있다.또한 default 여 부 를 설정 할 수 있 습 니 다. server, 연결 ssl 암호 화 여부, proxyprotocol, 등등.구체 적 인 설정 문법 과 설정 항목 은 이곳 의 공식 문 서 를 참고 할 수 있 습 니 다. 2) server_name 이 server block 의 도 메 인 이름 을 설정 합 니 다. 정확 한 도 메 인 이름, 마스크 가 있 는 도 메 인 이름과 정규 표현 식 세 가지 형식 을 지원 합 니 다. 자세 한 규칙 은 여기 참조.nginx 요청 URL 을 받 으 면 각 server block 에 따라 설정 되 는 servername 이 요청 한 server 를 검색 하여 처리 합 니 다. 첫 번 째 match 성공 (URL 을 요청 한 header 가 지정 한 도 메 인 이름 이 server name 과 일치 함) 의 server block 은 URL 요청 을 처리 합 니 다.문서 에서 알 수 있 듯 이 자세 한 검색 순서 우선 순 위 는 다음 과 같 습 니 다 (높 은 것 에서 낮은 것). a. the exact name b. the longest wildcard name starting with an asterisk, e.g. “*.example.com” c. the longest wildcard name ending with an asterisk, e.g. “mail.*” d. the first matching regular expression (in order of appearance in the configuration file) 실제 설정 servername 시 정확 한 도 메 인 이름, * 로 시작 하 는 도 메 인 이름, * 로 끝 나 는 도 메 인 이름 은 listen port 와 연 결 된 3 개의 hash 표 에 저 장 됩 니 다.nginx 근거 servername 서버 블록 을 검색 할 때이 세 개의 hash 표를 위 순서대로 검색 합 니 다. hash 표 의 한 설정 만 명중 시 켜 야 합 니 다.검색 이 끝나 면 사용자 요청 URL 은 성공 적 으로 일치 하 는 server 에 게 전 달 됩 니 다.name 에 속 하 는 server 블록 으로 처리 합 니 다.3 개의 hash 표 가 모두 검색 에 실패 하면 정규 표현 식 형식의 server 를 순서대로 검색 합 니 다.name。reg exp match 가 상대 적 으로 느 리 기 때문이다.그래서 검색 우선 순위 가 가장 낮다. 그래서실제 사용 할 때, 우 리 는 가능 한 한 정확 한 도 메 인 이름 을 설정 해 야 한다. 또한, 매우 많은 server 이름 이나 서버 도 메 인 이름 을 설정 하려 면 매우 깁 니 다.각각 server 최적화 해 야 합 니 다.names_hash_max_size 와 servernames_hash_bucket_size 이 두 설정 항목.상세 한 설명 은 이 문서 의 Optimization 부분 을 볼 수 있다. 3) location 상세 한 설명 은 다음 소절 참조 3. Location 블록 location block 에 대해 서 는 다음 과 같은 몇 가지 중요 한 규칙 을 잘 알 아야 합 니 다. 1) 이름 location (named location) 블록 을 제외 합 니 다.나머지 location 블록 은 query 인자 가 없 는 URL 에 작용 하고 매번 에 1 개의 location 블록 만 작용 합 니 다.이것 도 폴 더 설정 이 보통 최상 위 블록 에 있 는 이유 입 니 다. location / 에 정 의 된 루트 폴 더 설정 은 location / images 에 사용 할 수 없 기 때 문 입 니 다. 루트 폴 더 를 server 블록 에 설정 하면 모든 location 블록 은 이 설정 을 사용 할 수 있 습 니 다 (물론 location 블록 에서 이 블록 의 루트 폴 더 설정 을 바 꿀 수 있 습 니 다).반복 코드 를 없 애 든 유지 보 수 를 하 든 훨씬 편리 해 야 한다. 2) nginx 는 location 블록 에 따라 server요청 URL 을 할당 합 니 다.nginx URL 과 location 블록 에 대한 match 규칙 은 다음 과 같 습 니 다 (홈 페이지 문 서 는 여기 있 습 니 다). a. 우선 접두사 문자열 (prefix string) 이 정의 하 는 location 블록 을 찾 습 니 다.접두사 문자열 이 성공 적 으로 일치 하 는 모든 location 블록 에서 가장 긴 접두사 가 일치 하 는 블록 은 nginx 에 의 해 기 록 됩 니 다. b. 이 어 nginx 는 설정 파일 에서 정 의 된 우선 순위 에 따라 정규 표현 식 으로 정 의 된 location 블록 을 검사 합 니 다. 정규 블록 이 성공 적 으로 일치 하면.검색 이 끝나 면 이 블록 은 URL 을 처리 하고 전체 match 과정 이 끝 납 니 다. c. 정규 지정 한 location 블록 이 일치 하지 않 으 면 성공 합 니 다.첫 번 째 기록 의 최 장 접두사 가 일치 하 는 블록 을 되 돌려 줍 니 다.전체 match 프로 세 스 가 끝 났 습 니 다. 몇 가지 특별한 설명: a. 정규 표현 식 으로 정 의 된 location 블록 은 비교적 낮은 검색 우선 순 위 를 가지 고 있 습 니 다.일치 우선 순위 가 높 습 니 다.이 점 은 nginx 검색 servername 의 규칙 이 다 릅 니 다.각별 한 주 의 를 끌 어야 한다. b. location 은 등호 (=) 로 정확 한 설정 을 할 수 있 습 니 다. 가장 높 은 일치 우선 순 위 를 가지 고 정확 한 일치 하 는 location 만 명중 시 켜 야 합 니 다.nginx 에서 location 블록 에 대한 검색 이 곧 끝 납 니 다. 3) 설정 의 상세 한 문법 규칙 은 홈 페이지 문 서 를 참조 하고 여 기 는 군말 하지 않 습 니 다.4. 역 프 록 시 설정 주요 블록 (http / server / location) 의 기본 설정 규칙 을 숙지 하 는 전제 에서.nginx 를 설정 하여 역방향 프 록 시 서버 를 실현 하 는 것 은 사실상 매우 쉽다.location 블록 에서 proxy 설정 을 통 해pass 또는 fastcgi패스 는 이 루어 집 니 다. 또한, 어떤 sourceaddress 의 request 대 리 를 하위 서비스 (proxy bid) 로 설정 할 수 있 습 니까? 하위 응답 헤드 에 buffer 및 buffer 구역 크기 (proxy buffering / proxy buffer size) 를 할 지 여부 입 니 다.응답 결과 에 cache (proxy cache) 를 할 지 여부 입 니 다.잠깐 만. 구체 적 인 설정 문법 은 문서 Module ngx 를 참조 할 수 있 습 니 다.http_proxy_모듈 과 모듈 ngxhttp_fastcgi_module。 [참고 자료] 1. NGINX CONFIGURATION INHERITANCE MODEL 이해 하기 2. NGINX CONFIGURATION PRIMER 3. Nginx Beginner’s Guide ======================= EOF ===================
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.