구성 예
upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; server backup2.example.com:8080 backup; } server { location / { proxy_pass http://backend; } }
Command
구문: | 업스트림 이름 { ... } |
기본값: | — |
컨텍스트: | http |
정의 서버 세트. 이러한 서버는 다른 포트에서 수신 대기할 수 있습니다. 또한 TCP 및 UNIX 도메인 소켓을 수신하는 서버를 혼합할 수 있습니다.
예:
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; }
기본적으로 nginx는 가중치가 부여된 라운드 로빈 방식으로 각 서버에 요청을 배포합니다. 위의 예에서는 7개의 요청마다 다음과 같은 방식으로 배포됩니다. 5개의 요청은 backend1.example.com에 배포되고, 1개의 요청은 두 번째 서버에 배포되고, 1개의 요청은 세 번째 서버에 배포됩니다. 서버와 통신 중 오류가 발생하면 사용 가능한 모든 서버를 시도할 때까지 다음 서버로 요청이 전달됩니다. 모든 서버가 실패를 반환하면 클라이언트는 마지막으로 통신한 서버로부터 (실패) 응답을 받습니다.
구문: | 서버 주소 [매개변수]; |
기본값: | — |
컨텍스트: | upstream |
서버 주소와 기타 매개변수를 정의하세요. 주소는 도메인 이름 또는 IP 주소일 수 있으며, 포트는 선택 사항이거나 "unix:" 접두사를 지정하는 Unix 도메인 소켓에 대한 경로입니다. 포트를 지정하지 않으면 포트 80이 사용됩니다. 도메인 이름이 여러 IP로 확인되면 기본적으로 여러 서버가 정의됩니다.
다음 매개변수를 정의할 수 있습니다. Weight=number는 서버의 가중치를 설정하며 기본값은 1입니다. max_fails=number는 nginx가 서버와 통신하려는 시도에 실패한 횟수를 설정합니다. failure_timeout 매개변수에 정의된 기간 내에 실패 횟수가 이 값에 도달하면 nginx는 서버를 사용할 수 없는 것으로 간주합니다. 다음 failure_timeout 기간 동안 서버는 다시 시도되지 않습니다. 실패한 시도 횟수의 기본값은 1입니다. 0으로 설정하면 시도 횟수 계산이 중지되고 서버가 항상 사용 가능한 것으로 간주됩니다. Proxy_next_upstream, fastcgi_next_upstream 및 memcached_next_upstream 지시어를 통해 실패한 시도로 간주되는 것을 구성할 수 있습니다. 기본적으로 구성된 경우 http_404 상태는 실패한 시도로 간주되지 않습니다. failure_timeout=time은 실패한 시도 횟수를 계산하는 기간을 설정합니다. 이 기간 동안 서버가 지정된 시도 횟수 동안 실패하면 서버를 사용할 수 없는 것으로 간주됩니다.
서버를 사용할 수 없는 것으로 간주되는 기간입니다.
기본적으로 이 제한 시간은 10초입니다. 백업이 백업 서버로 표시됩니다. 기본 서버를 사용할 수 없으면 요청이 해당 서버로 전달됩니다. down은 서버를 영구적으로 사용할 수 없음을 표시하며 ip_hash 지시문과 함께 사용할 수 있습니다.
예:
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; server backup1.example.com:8080 backup; }구문:
기본값: |
|
컨텍스트: | |
서버 그룹의 로드 밸런싱 방식을 지정하세요. , 요청 클라이언트의 IP 주소를 기반으로 서버 간에 분산됩니다. IPv4 주소의 처음 3바이트 또는 전체 IPv6 주소가 해시 키로 사용됩니다. 이 방법을 사용하면 동일한 클라이언트의 요청이 동일한 서버로 전달됩니다. 서버를 사용할 수 없는 것으로 간주되는 경우를 제외하고 이러한 클라이언트 요청은 다른 서버(대부분 동일한 서버)로 전달됩니다. |
서버 중 하나를 일시적으로 제거하려면 down 매개변수를 추가해야 합니다. 이렇게 하면 현재 클라이언트 IP 주소 해시 배포가 유지됩니다. 예:
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down; server backend4.example.com; }버전 1.3.1 및 1.2.2부터 ip_hash의 로드 밸런싱 방식은 서버 가중치 값 설정만 지원합니다.
구문:
기본값: |
|||||||
컨텍스트: | |||||||
这个指令出现在版本 1.1.4. 激活对上游服务器的连接进行缓存。 connections参数设置每个worker进程与后端服务器保持连接的最大数量。这些保持的连接会被放入缓存。 如果连接数大于这个值时,最久未使用的连接会被关闭。 需要注意的是,keepalive指令不会限制nginx进程与上游服务器的连接总数。 新的连接总会按需被创建。 connections参数应该稍微设低一点,以便上游服务器也能处理额外新进来的连接。 配置memcached上游服务器连接keepalive的例子: upstream memcached_backend { server 127.0.0.1:11211; server 10.0.0.2:11211; keepalive 32; } server { ... location /memcached/ { set $memcached_key $uri; memcached_pass memcached_backend; } } 对于http代理,proxy_http_version指令应该设置为“1.1”,同时“connection”头的值也应被清空。 upstream http_backend { server 127.0.0.1:8080; keepalive 16; } server { ... location /http/ { proxy_pass http://http_backend; proxy_http_version 1.1; proxy_set_header connection ""; ... } } 另外一种选择是,http/1.0协议的持久连接也可以通过发送“connection: keep-alive”头来实现。不过不建议这样用。 对于fastcgi的服务器,需要设置 fastcgi_keep_conn 指令来让连接keepalive工作: upstream fastcgi_backend { server 127.0.0.1:9000; keepalive 8; } server { ... location /fastcgi/ { fastcgi_pass fastcgi_backend; fastcgi_keep_conn on; ... } } 当使用的负载均衡方法不是默认的轮转法时,必须在keepalive 指令之前配置。 针对scgi和uwsgi协议,还没有实现其keepalive连接的打算。
这个指令出现在版本 1.3.1 和 1.2.2. 指定服务器组的负载均衡方法,根据其权重值,将请求发送到活跃连接数最少的那台服务器。 如果这样的服务器有多台,那就采取有权重的轮转法进行尝试。 嵌入的变量 ngx_http_upstream_module模块支持以下嵌入变量: $upstream_addr保存服务器的ip地址和端口或者是unix域套接字的路径。 在请求处理过程中,如果有多台服务器被尝试了,它们的地址会被拼接起来,以逗号隔开,比如: “192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock”。 如果在服务器之间通过“x-accel-redirect”头或者error_page有内部跳转,那么这些服务器组之间会以冒号隔开,比如:“192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80”。$upstream_response_time以毫秒的精度保留服务器的响应时间,(输出)单位是秒。 出现多个响应时,也是以逗号和冒号隔开。$upstream_status保存服务器的响应代码。 出现多个响应时,也是以逗号和冒号隔开。$upstream_http_...保存服务器的响应头的值。比如“server”响应头的值可以通过$upstream_http_server变量来获取。 需要注意的是只有最后一个响应的头会被保留下来。 |
위 내용은 nginx의 업스트림 구성과 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Nginx가 인기있는 이유는 속도, 효율성 및 제어의 장점 때문입니다. 1) 속도 : 비동기 및 비 블로킹 처리를 채택하고 동시 연결이 높으며 강력한 정적 파일 서비스 기능이 있습니다. 2) 효율성 : 메모리 사용량이 낮고 강력한로드 밸런싱 기능. 3) 제어 : 유연한 구성 파일 관리 동작을 통해 모듈 식 설계는 확장을 용이하게합니다.

커뮤니티, 지원 및 리소스 측면에서 Nginx와 Apache의 차이점은 다음과 같습니다. 1. Nginx 커뮤니티는 작지만 활발하고 전문적이며 공식 지원은 NginxPlus를 통해 고급 기능과 전문 서비스를 제공합니다. 2. Apache에는 거대하고 활발한 커뮤니티가 있으며 공식 지원은 주로 풍부한 문서 및 커뮤니티 리소스를 통해 제공됩니다.

NginXunit은 Python, PHP, Java, Go 등과 같은 다양한 프로그래밍 언어 및 프레임 워크를 지원하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성을 지원하고 서버를 다시 시작하지 않고 응용 프로그램 구성을 조정할 수 있습니다. 2.nginxunit은 다중 언어 응용 프로그램을 지원하여 다국어 환경의 관리를 단순화합니다. 3. 구성 파일을 사용하면 Python 및 PHP 응용 프로그램 실행과 같은 응용 프로그램을 쉽게 배포하고 관리 할 수 있습니다. 4. 또한 응용 프로그램을 관리하고 스케일링하는 데 도움이되는 라우팅 및로드 밸런싱과 같은 고급 구성을 지원합니다.

Nginx는 웹 사이트 성능과 신뢰성을 향상시킬 수 있습니다. 1. 웹 서버로서 정적 컨텐츠를 프로세스합니다. 2. 리버스 프록시 서버로서의 전달 요청; 3.로드 밸런서로 요청을 할당; 4. 캐시 서버로서 백엔드 압력을 줄입니다. NGINX는 GZIP 압축 활성화 및 연결 풀링 조정과 같은 구성 최적화를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다.

nginxserveswebcontentandactsasareverseproxy, loadbalancer, andmore.1) itefficientservesstaticcontentikehtmllandimages.2) itfunctionsAresAreSeareverseProxyAndloadbalancer, 분배 TrafficacrossServers.3) nginxenhancesperformancethroughcaching.4) Itofferssecur

NginXunit은 동적 구성 및 다국어 지원으로 응용 프로그램 배포를 단순화합니다. 1) 서버를 다시 시작하지 않고 동적 구성을 수정할 수 있습니다. 2) Python, PHP 및 Java와 같은 여러 프로그래밍 언어를 지원합니다. 3) 고 동시성 처리 성능을 향상시키기 위해 비동기 비 차단 I/O 모델을 채택하십시오.

NGINX는 처음에 C10K 문제를 해결했으며 이제로드 밸런싱, 리버스 프록시 및 API 게이트웨이를 처리하는 모든 라운드로 발전했습니다. 1) 이벤트 중심 및 비 블로킹 아키텍처에서 잘 알려져 있으며 높은 동시성에 적합합니다. 2) NGINX는 IMAP/POP3을 지원하는 HTTP 및 리버스 프록시 서버로 사용될 수 있습니다. 3) 작동 원리는 이벤트 중심 및 비동기 I/O 모델을 기반으로하며 성능을 향상시킵니다. 4) 기본 사용에는 가상 호스트 구성 및로드 밸런싱 구성이 포함되며 고급 사용량은 복잡한로드 밸런싱 및 캐싱 전략이 포함됩니다. 5) 일반적인 오류에는 구성 구문 오류 및 권한 문제가 포함되며 디버깅 기술은 Nginx-T 명령 및 stub_status 모듈 사용이 포함됩니다. 6) 성능 최적화 제안에는 작업자 매개 변수 조정, GZIP 압축 사용 및

Nginx의 일반적인 오류에 대한 진단 및 솔루션에는 다음이 포함됩니다. 1. 로그 파일보기, 2. 구성 파일 조정, 3. 성능 최적화. 로그를 분석하고 시간 초과 설정을 조정하고 캐시 및로드 밸런싱 최적화를 통해 웹 사이트 안정성 및 성능을 향상시키기 위해 404, 502, 504와 같은 오류를 효과적으로 해결할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版
시각적 웹 개발 도구