>운영 및 유지보수 >엔진스 >nginx의 일반적인 애플리케이션 시나리오는 무엇입니까?

nginx의 일반적인 애플리케이션 시나리오는 무엇입니까?

王林
王林앞으로
2020-09-11 16:18:235970검색

nginx의 일반적인 애플리케이션 시나리오는 무엇입니까?

nginx 주요 응용 시나리오

1. 역방향 프록시

(권장 튜토리얼: nginx 튜토리얼)

역방향 프록시는 Nginx가 수행하는 가장 일반적인 작업입니다. 바이두 백과사전에 따르면 역방향 프록시(Reverse Proxy) 방식은 프록시 서버를 이용해 인터넷상의 연결 요청을 수락한 후, 해당 요청을 내부 네트워크의 서버로 전달하고, 서버에서 얻은 결과를 클라이언트가 클라이언트에게 반환하는 방식을 말한다. 인터넷에서 연결을 요청하면 프록시 서버는 외부 세계에 역방향 프록시 서버로 나타납니다. 간단히 말하면, 실제 서버는 외부 네트워크에서 직접 접속할 수 없으므로 프록시 서버가 필요합니다. 프록시 서버는 외부 네트워크에서 접속이 가능하며, 물론 실제 서버와 동일한 네트워크 환경에 있습니다. 동일한 서버와 포트일 수도 있습니다.

주요 명령: proxy_pass; 예를 들어 로컬 호스트 포트 80을 로컬 호스트 포트 8080

<span style="color: #000000;">server { 
   listen 80; 
    server_name localhost; 

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host:$server_port;
  }<br>}    </span>

2로 전송합니다. 로드 밸런싱

간단히 말하면 Nginx에서 일반적으로 사용되는 기능입니다. 2개 또는 2개 이상의 서버가 있는 경우 규칙에 따라 처리하기 위해 요청이 지정된 서버에 무작위로 분산됩니다. 로드 밸런싱 구성은 일반적으로 역방향 프록시를 동시에 구성하고 역방향 프록시를 통해 로드 밸런싱으로 점프해야 합니다. Nginx는 현재 3가지 유형의 로드 밸런싱 전략과 일반적으로 사용되는 2가지 타사 전략을 지원합니다.

주요 명령: upstream 예를 들어, localhost 포트 80의 요청은 localhost 8080 및 localhost 8081 서비스

에 고르게 분산됩니다. plan:

1), 가중치 가중치: 세션 공유를 구현해야 합니다. 그렇지 않으면 사용자 세션이 동기화되지 않아 사용자가 다시 로그인하게 됩니다

    upstream test {
        server localhost:8080 weight=9;  #请求的 90% 进入到8080服务器
        server localhost:8081 weight=1;  #请求的 10% 进入到8081服务器
    }
2), ip_hash: 해시 결과에 따라 각 요청이 할당됩니다. 각 요청 방문자가 백엔드 서버에 대한 고정 액세스 권한을 갖도록 하여 세션 문제를 해결할 수 있습니다

upstream test {        ip_hash;
        server localhost:8080;
        server localhost:8081;
    }
3), 공정(제3자): 백엔드의 응답 시간에 따라 요청을 할당합니다. 서버이며 응답 시간이 짧은 서버가 먼저 할당됩니다.

upstream test {        fair;
        server localhost:8080;
        server localhost:8081;
}
4), url_hash(타사): URL의 해시 결과를 요청하여 요청을 할당하므로 각 URL이 동일한 백엔드 서버로 전달되도록 백엔드 서버를 캐시할 때 더 효과적입니다

upstream backend {        hash $request_uri;
        hash_method crc32;
        server localhost:8080;
        server localhost:8081;
    }
5) , 기본값: 여러 머신에 동시에 할당됨

upstream test {
        server localhost:8080;
        server localhost:8081;
    }
    server {
        listen       80;                                                        
        server_name  localhost;                                              
        client_max_body_size 1024M;

        location / {
            proxy_pass http://test;
            proxy_set_header Host $host:$server_port;
        }
    }
3. WEB 서버

Nginx 자체도 정적 리소스 서버일 경우 Nginx를 서버로 사용할 수 있습니다. 정적 리소스와 정적 리소스를 분리하는 방법도 매우 인기가 있습니다. 먼저 Nginx를 정적 리소스 서버로 살펴보겠습니다. 웹사이트가 단지 정적 페이지라면 이 방법으로 배포할 수 있습니다.

주요 명령:

root

정적 리소스만 있는 경우 Nginx를 서버로 사용할 수 있습니다E://www/data目录下面的index.html

server {
        listen       80;                                                        
        server_name  localhost;                                              

        location / {
               root   e:/www/data;
               index  index.html;
           }
    }
4. 프록시는 HTTPS를 지원하지 않습니다

정방향 프록시는 클라이언트와 원본 서버(원본 서버) 사이의 링크를 의미하며, 원본 서버에서 콘텐츠를 얻기 위해 클라이언트는 프록시에 요청을 보내고 대상(원본 서버)을 지정합니다. ), 그러면 프록시는 요청을 원래 서버로 전달하고 획득한 콘텐츠를 클라이언트에 반환합니다. 클라이언트만 전달 프록시를 사용할 수 있습니다. 서버를 프록시 서버로 사용해야 하는 경우 Nginx를 사용하여 순방향 프록시를 구현할 수 있습니다. 그러나 Nginx에는 현재 HTTPS

5를 지원하지 않는다는 문제가 있습니다. 동적 웹사이트에서 사용되는 동적 웹페이지는 일정한 규칙에 따라 자주 변경되는 리소스와 동적 리소스를 구분한 후 정적 리소스의 특성에 따라 캐시할 수 있습니다. 웹사이트.

아아아아

위 내용은 nginx의 일반적인 애플리케이션 시나리오는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제