Testing
nginx 제한 요청 모듈을 구성하는 방법과 이것이 DDoS 또는 기타 http 기반 서비스 거부 공격으로부터 웹사이트를 보호하는 방법을 간략하게 설명하겠습니다.
이 테스트에서는 샘플 페이지를 blitz.io(현재 무료 서비스)에 저장하고 이름을 about.html로 지정하여 Limit_req 명령을 테스트했습니다.
먼저 blitz에서 다음 명령을 사용하여 1075개의 동시 요청을 시작했습니다. 1분이면 응답 시간 초과가 2분으로 설정되고 지역은 캘리포니아이고 상태 200을 제외한 모든 주는 비정상 상태로 설정되어 있으며 503도 실패한 것으로 간주됩니다.
-p 1-1075:60 --status 200 - t 2000 -r california http://kbeezie.com/about.html
나쁘지 않죠? 하지만 이것이 PHP 문서라면 대부분의 사용자는 PHP 프로세스의 502/504 상태를 유발할 것입니다. , 서버가 충돌하거나 응답하지 않게 됩니다. 특히 아무런 보호 없이 vps나 기타 저렴한 서버를 사용하는 경우 실패율이 더 높아집니다. (원본 광고는 여기에서 차단됨)
물론 서버 성능과 응답성을 향상시키기 위해 캐싱이나 기타 도구를 사용할 수 있습니다. 예를 들어, 워드프레스를 사용하는 경우 해당 유형의 사람들을 위해 워드프레스 캐싱 플러그인을 사용해야 합니다. 제한 요청 모듈입니다.
nginx에서는 http { } 영역을 생성하고 이를 blitz라고 부르고 최대 데이터 용량이 10MB인 초당 5개 요청으로 설정합니다. $binary_remote_addr을 세션 변수로 사용하여 더 많은 것을 만듭니다. $remote_addr보다 정상 방문자는 10MB보다 큰 공간에 액세스할 수 있습니다.
코드 복사 코드는 다음과 같습니다:
limit_req_zone $binary_remote_addr zone=blitz:10m rate=5r/s;
그런 다음 Zhou는 서버에서 다음 규칙을 정의했습니다.
코드 복사 코드는 다음과 같습니다:
location = /about.html {
limit_req zone=blitz nodelay;
}
그런 다음 nginx 구성을 다시 로드하고 효과를 확인하세요.
현재 서버에 접속할 수 있는 사람은 285명이며, 초당 요청 수는 4.75회이며, 이는 우리가 설정한 초당 5회를 초과하지 않습니다. 로그를 확인하면 접속되지 않은 요청은 http 503이고, 액세스되는 요청은 모두 http 200입니다.
지역 액세스를 제한하려는 경우 이 설정을 사용하면 모든 PHP 요청에 적용할 수도 있습니다.
php 애플리케이션 요청 제한
제한하려는 경우.
코드 복사 코드는 다음과 같습니다:
location ~ .php {
limit_req zone=flood;
include php_params.conf;
fastcgi_pass unix:/tmp/php5-fpm. sock;
}
가속 또는 감속과 같은 설정을 사용하여 플레이하는 데 도움이 될 수 있습니다. 갑작스럽거나 지연되지 않는 요구 사항에 대처하려면 구성 항목 세부 정보를 보려면 여기를 클릭하세요: httplimitreqmodule.
참고:
위 차트를 볼 수 있습니다. 1075개의 사용자 요청을 테스트했습니다. 모든 액세스 요청이 캘리포니아의 동일한 IP(50.18.0.223)에서 발생하기 때문에 여기에 오해의 소지가 있습니다.
실제 트래픽이 많은 네트워크 또는 DDoS(분산 거부)를 구현하는 것은 어렵습니다. 서비스 공격) 이것이 우리가 성공적으로 접속한 사용자 수가 IP와 관련이 있는 이유입니다. 서버 로드는 테스트 사용자의 방문 수나 지역에도 영향을 미칩니다. 액세스할 수 있는 사용자는 50명입니다. 물론 1,000명의 사용자가 귀하의 웹사이트에 액세스하도록 하려면 하루에 49달러를 지출할 수 있습니다.
충분한 메모리와 대역폭이 있으면 이 도구를 사용하면 매우 쉽게 테스트할 수 있습니다. 높은 동시성, ab, 오픈로드 등을 달성할 수 있습니다. UI 없이 터미널 인터페이스에만 있습니다.
물론 직접 테스트해야 합니다. blitz가 액세스 요청에 응답하므로 상태 플래그를 사용해야 한다는 것을 기억하세요. 약 5초 후에
더 나은 교체
여기에서는 더 자세히 설명하지 않겠습니다. DDoS 또는 다중 서비스 공격이 서버를 공격하는 것을 방지하려면 iptables(linux)와 같은 다른 훌륭한 소프트웨어 도구가 있습니다. ), pf(bsd용 패킷 필터) 또는 서버가 하드웨어를 제공하는 경우 하드웨어 방화벽을 사용할 수 있습니다. 위의 제한 모듈은 http 요청을 통한 플러드 공격만 방지하지만 핑 패킷 플러드 공격이나 기타 취약점은 방지하지 않습니다. 이러한 경우 불필요한 서비스와 불필요한 포트를 닫아 다른 사람이 침입하는 것을 방지할 수 있습니다.
예를 들어, 내 서버가 외부 네트워크에 노출하는 유일한 포트는 mysql과 같은 서비스가 로컬 연결에 바인딩되어 있습니다. 또한 일반적으로 사용되지 않는 포트에 일부 공통 서비스를 설정하여 스니핑되는 일이 없도록 할 수도 있습니다(이 경우 iptables/pf가 도움이 됩니다).
위 내용은 Flood 공격을 방지하기 위해 Nginx 서버를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Nginx와 Apache는 각각 고유 한 장점과 단점이 있으며 선택은 특정 요구에 기초해야합니다. 1.NGINX는 비동기 비 블로킹 아키텍처로 인해 높은 동시 시나리오에 적합합니다. 2. Apache는 모듈 식 설계로 인해 복잡한 구성이 필요한 저소성 시나리오에 적합합니다.

NginXunit은 여러 프로그래밍 언어를 지원하고 동적 구성, 제로 다운 타임 업데이트 및 내장로드 밸런싱과 같은 기능을 제공하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성 : 다시 시작하지 않고 구성을 수정할 수 있습니다. 2. 다국어 지원 : Python, Go, Java, PHP 등과 호환됩니다. 3. 제로 다운 타임 업데이트 : 서비스를 중단하지 않는 응용 프로그램 업데이트를 지원합니다. 4. 내장로드 밸런싱 : 요청을 여러 응용 프로그램 인스턴스에 배포 할 수 있습니다.

NginxUnit은 다국어 프로젝트 및 동적 구성 요구 사항에 적합한 Apachetomcat, Gunicorn 및 Node.js 내장 HTTP 서버보다 낫습니다. 1) 여러 프로그래밍 언어를 지원하고, 2) 동적 구성 재 장전을 제공합니다. 3) 확장 성과 신뢰성이 높은 프로젝트에 적합한 내장로드 밸런싱 기능.

NginxUnit은 모듈 식 아키텍처 및 동적 재구성 기능으로 응용 프로그램 성능 및 관리 가능성을 향상시킵니다. 1) 모듈 식 설계에는 마스터 프로세스, 라우터 및 응용 프로그램 프로세스가 포함되어 효율적인 관리 및 확장을 지원합니다. 2) 동적 재구성을 통해 CI/CD 환경에 적합한 런타임시 구성을 완벽하게 업데이트 할 수 있습니다. 3) 다국어 지원은 언어 런타임의 동적로드를 통해 구현되어 개발 유연성을 향상시킵니다. 4) 고성능은 이벤트 중심 모델과 비동기 I/O를 통해 달성되며 높은 동시성에서도 효율적으로 유지됩니다. 5) 응용 프로그램 프로세스를 분리하고 응용 프로그램 간의 상호 영향을 줄임으로써 보안이 향상됩니다.

NginxUnit을 사용하여 여러 언어로 응용 프로그램을 배포하고 관리 할 수 있습니다. 1) nginxunit을 설치하십시오. 2) Python 및 PHP와 같은 다른 유형의 응용 프로그램을 실행하도록 구성하십시오. 3) 응용 프로그램 관리에 동적 구성 기능을 사용하십시오. 이러한 단계를 통해 응용 프로그램을 효율적으로 배포하고 관리하고 프로젝트 효율성을 향상시킬 수 있습니다.

Nginx는 높은 동시 연결을 처리하는 데 더 적합한 반면 Apache는 복잡한 구성 및 모듈 확장이 필요한 시나리오에 더 적합합니다. 1.NGINX는 고성능 및 낮은 자원 소비로 유명하며 높은 동시성에 적합합니다. 2. Aapache는 안정성과 풍부한 모듈 확장으로 유명하며 복잡한 구성 요구에 적합합니다.

NginxUnit은 동적 구성 및 고성능 아키텍처로 응용 프로그램 유연성 및 성능을 향상시킵니다. 1. 동적 구성을 사용하면 서버를 다시 시작하지 않고 응용 프로그램 구성을 조정할 수 있습니다. 2. 고성능은 이벤트 중심 및 비 블로킹 아키텍처 및 다중 프로세스 모델에 반영되며 동시 연결을 효율적으로 처리하고 멀티 코어 CPU를 활용할 수 있습니다.

Nginx와 Apache는 성능, 확장 성 및 효율성 측면에서 고유 한 장점과 단점을 가진 강력한 웹 서버입니다. 1) NGINX는 정적 컨텐츠를 처리하고 역전 프록시를 처리 할 때 잘 수행되며 동시 동시성 시나리오에 적합합니다. 2) Apache는 동적 컨텐츠를 처리 할 때 더 나은 성능을 발휘하며 풍부한 모듈 지원이 필요한 프로젝트에 적합합니다. 서버 선택은 프로젝트 요구 사항 및 시나리오에 따라 결정해야합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

드림위버 CS6
시각적 웹 개발 도구
