>  기사  >  백엔드 개발  >  Nginx 서버 구성 지침

Nginx 서버 구성 지침

WBOY
WBOY원래의
2016-07-30 13:30:091289검색

Nginx 서버 구성 지침:
재작성 기능, 프록시 기능

재작성 기능

백엔드 서버 그룹 구성 지침

업스트림 지침

업스트림 지침은 백엔드 서버를 설정하는 주요 방법입니다. group

<code>upstream name {<span>...</span>} </code>

명령은 Round-Robin(RR) 정책 순서에 따라 서버가 처리되도록 요청합니다.

server

server 명령은 서버를 설정하는 데 사용됩니다. 그룹

<code>server address [<span>params</span>];</code>
  • 주소: 포트 번호 또는 "unix:" 접두사가 붙은 프로세스 간 통신을 위한 Unix 도메인 소켓을 포함할 수 있는 서버 주소
  • params: 추가 구성 현재 서버 속성에 대해
    가중치=숫자, 그룹 내 서버의 가중치, 가중치가 높은 요청이 먼저 처리됩니다(가중치 폴링 전략 사용)
    max_fails=number는 실패한 요청 수를 설정합니다. 그룹 내 서버에 대한 실패한 요청 수가 이 변수를 초과하면 서버는 유효하지 않은 것으로 간주됩니다(404 제외).
    failure_timeout=time, 그룹에서 서버를 요청하려고 시도하는 시간을 설정하고 해당 서버가 유효한지 확인합니다
    백업, 서버를 백업 서버로 표시
    다운, 서버를 영구적으로 유효하지 않은 것으로 표시

ip_hash 명령

ip_hash 명령은 세션 지속성 기능을 구현하고 클라이언트의 여러 요청을 그룹의 동일한 서버로 전달하는 데 사용됩니다. 클라이언트와 서버 사이에 안정적인 세션이 설정되도록 합니다.
참고: ip_hash 명령은 가중치 변수와 함께 사용할 수 없습니다. 전체 시스템에서 Nginx 서버는 프런트엔드 서버여야 하며 클라이언트 주소는 클래스 C 주소여야 합니다

keepalive 명령

keepalive 명령은 네트워크 연결 유지 기능을 제어하는 ​​데 사용됩니다

<code>keepalive connections;</code>

서버의 각 작업자 프로세스가 허용하는 유휴 네트워크 연결 수의 상한을 설정합니다. 서버 그룹을 유지 관리

least_conn 지침

최소_conn 지침은 로드 밸런싱 정책을 사용하여 네트워크 연결을 위해 서버 그룹에 서버를 할당하고 요청을 할당하도록 Nginx 서버를 구성하는 데 사용됩니다. 현재 네트워크 연결이 가장 적은 서버

Rewrite 기능 구성 지침

Rewrite 기능의 여러 응용

프록시 기능

Nginx 포워드 프록시 서비스 구성 지침

리졸버 명령

리졸버 명령이 사용됨 DNS 서버의 IP 주소

<code>resolver address <span>...</span> [valid=time];</code>
  • 주소, DNS 서버의 IP 주소, 기본 포트 지정 35
  • time, 네트워크에서 데이터 패킷의 유효 시간 설정

resolve_timeout 명령

resolve_timeout 명령은 DNS 서버 도메인 이름 확인 시간 초과를 설정하는 데 사용됩니다.

<code>resolve_timeout <span>time</span>;</code>

proxy_pass 명령

proxy_pass 명령은 프록시 서버의 프로토콜과 주소를 설정하는 데 사용됩니다.

<code>proxy_pass <span>URL</span>;</code>

Nginx 역방향 프록시 서비스 구성 명령

proxy_pass 명령

proxy_pass 명령은 프록시 서버의 주소를 설정하는 데 사용되며 호스트 이름 또는 IP 주소 포트 번호 추가 형식 등이 될 수 있습니다.

<code>proxy_pass <span>URL</span>;</code>

proxy_hide_header 지시어

proxy_hide_header 지시어는 HTTP 응답을 보낼 때 일부 헤더 필드 정보를 숨기도록 Nginx 서버를 설정하는 데 사용됩니다.

<code>proxy<span>\_</span>hide_header field</code>

proxy_pass_header 명령

proxy_pass_header 명령은 어떤 헤더 필드 정보를 설정하는 데 사용됩니다. 헤더 필드 정보가 전송됩니다

<code>proxy<span>\_</span>hide_header field</code>

proxy_pass_header 명령

proxy_pass_header 명령은 어떤 헤더 필드 정보가 전송되는지 설정하는 데 사용됩니다

<code>proxy<span>\_</span>hide_header field</code>

생략

Nginx 역방향 프록시 서비스-로드 밸런싱

일반 폴링 규칙의 로드 밸런싱

<code><span>...</span>
upstream backend {
    server <span>192.168</span><span>.1</span><span>.2</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.3</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
}
server {
    listen <span>80</span>;
    server_name www.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        <span>...</span>
    }
    <span>...</span>
}</code>

가중치 폴링 규칙의 로드 밸런싱

<code><span>...</span>
upstream backend {
    server <span>192.168</span><span>.1</span><span>.2</span>:<span>80</span> weight=<span>5</span>;
    server <span>192.168</span><span>.1</span><span>.3</span>:<span>80</span> weight=<span>2</span>;
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
}
server {
    listen <span>80</span>;
    server_name www.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        <span>...</span>
    }
    <span>...</span>
}</code>

특정 리소스의 로드 밸런싱

<code><span>...</span>
upstream videobackend {
    server <span>192.168</span><span>.1</span><span>.2</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.3</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
}
upstream filebackend {
    server <span>192.168</span><span>.1</span><span>.5</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.6</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.7</span>:<span>80</span>;
}
server {
    listen <span>80</span>;
    server_name www.mysite.name;
    index index.html index.htm;
    location /video/ {
        proxy_pass http://videobackend;
        proxy_set_header Host $host;
        <span>...</span>
    }
    location /file/ {
        proxy_pass http://filebackend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        <span>...</span>
    }
    <span>...</span>
}</code>

다른 도메인 이름에 대한 로드 밸런싱

<code><span>...</span>
upstream bbsbackend{
    server <span>192.168</span><span>.1</span><span>.2</span>:<span>80</span> weight=<span>2</span>;
    server <span>192.168</span><span>.1</span><span>.3</span>:<span>80</span> weight=<span>2</span>;
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
}
upstream homebackend {
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.5</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.6</span>:<span>80</span>;
}
server {
    listen <span>80</span>;
    server_name home.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://homebackend;
        proxy_set_header Host $host;
        <span>...</span>
    }
    <span>...</span>
}

server {
    listen <span>81</span>;
    server_name bbs.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://bbsbackend;
        proxy_set_header Host $host;
        <span>...</span>
    }
    <span>...</span>
}</code>

URL 재작성을 통한 로드 밸런싱

<code><span>...</span>
upstream backend{
    server <span>192.168</span><span>.1</span><span>.2</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.3</span>:<span>80</span>;
    server <span>192.168</span><span>.1</span><span>.4</span>:<span>80</span>;
}
server {
    listen <span>80</span>;
    server_name www.mysite.name;
    index index.html index.htm;
    location /file/ {
        rewrite ^(/file/.*)/media/(.*)\.*$ $<span>1</span>/mp3/$<span>2.</span>mp3 last;
    }

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        <span>...</span>
    }
}</code>

위 내용은 관련 내용을 포함하여 Nginx 서버 구성 지침을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.