>  기사  >  백엔드 개발  >  웹 서비스에 대한 동시 연결 수를 제한하도록 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스에 대한 동시 연결 수를 제한하도록 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

王林
王林원래의
2023-09-05 09:44:011707검색

웹 서비스에 대한 동시 연결 수를 제한하도록 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

웹 서비스의 동시 연결 수를 제한하도록 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?

소개:
웹 애플리케이션의 개발과 함께 사용자 경험과 서비스 안정성을 보장하려면 웹 서비스의 동시 연결 수를 제한하는 것이 중요합니다. 고성능 웹 서버이자 역방향 프록시 서버인 Nginx는 동시 연결 수를 쉽게 제한하는 데 도움이 되는 풍부한 구성 옵션을 제공합니다. 이 기사에서는 웹 서비스의 동시 연결 수를 제한하기 위해 Nginx 프록시 서버를 구성하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. Nginx 설치:

먼저 Nginx를 설치해야 합니다. 다음은 Ubuntu에 Nginx를 설치하는 명령 예입니다.

$ sudo apt update
$ sudo apt install nginx

2. Nginx 프록시 서버 구성:

  1. Nginx 구성 파일을 엽니다.

    $ sudo nano /etc/nginx/nginx.conf
  2. http 블록에 다음 구성을 추가합니다.

    http {
     ...
     
     # 限制并发连接数为100
     limit_conn_zone $binary_remote_addr zone=concurrent:10m;
     
     server {
         ...
         
         # 限制并发连接数为10
         limit_conn concurrent 10;
     
         ...
     }
    }

위의 예제 구성에서는 Nginx의limit_conn 모듈을 사용하여 동시 연결 수를 제한합니다. 그 중 limit_conn_zone用于定义一个共享内存区域,以存储并发连接数的状态信息,并设置了10m的大小;limit_conn는 각 서버 블록에서 동시 연결 수를 10개로 제한하는 데 사용됩니다. 실제 필요에 따라 조정할 수 있습니다.

3. Nginx 서비스 다시 시작:

구성을 적용하려면 Nginx 서비스를 다시 시작해야 합니다.

$ sudo systemctl restart nginx

4. 구성 확인:

ab 명령을 사용하여 여부를 확인할 수 있습니다. 구성이 효과적입니다. 다음은 스트레스 테스트를 위해 ab 명령을 사용한 예입니다.

$ ab -c 100 -n 1000 http://localhost/

위 예에서는 -c 매개변수를 통해 동시 요청 수를 100으로 설정하고, -n 매개 변수를 통해 총 요청 수를 1000으로 설정했으며, 접속된 URL은 http://localhost /입니다. 구성이 적용되면 다음과 유사한 출력이 표시됩니다.

Concurrency Level:      100
Time taken for tests:   10.000 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      158000 bytes
...

결론:
Nginx 프록시 서버를 구성하면 웹 서비스에 대한 동시 연결 수를 쉽게 제한할 수 있습니다. 위의 구성 예는 이 기능을 빠르게 구현하는 데 도움이 될 수 있습니다. 물론 특정 사용 시나리오 및 요구 사항에 따라 일부 조정 및 수정이 필요할 수도 있습니다. 이 기사가 도움이 되기를 바랍니다!

참조 링크:

  • Nginx 공식 문서: https://nginx.org/en/docs/
  • Nginx의limit_conn 모듈: https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

위 내용은 웹 서비스에 대한 동시 연결 수를 제한하도록 Nginx 프록시 서버를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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