요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해
요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해
Nginx는 고성능 오픈 소스 웹 서버로 정적 웹 사이트, 역방향 프록시 및 로드 밸런싱을 배포하는 데 사용할 수 있을 뿐만 아니라 일련의 보안 보호 전략을 통해 악의적인 요청으로부터 서버를 보호합니다. 이 기사에서는 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 중점을 두고 관련 코드 예제를 제공합니다.
- 요청 속도 제한
악성 요청은 종종 여러 가지 고주파 방식으로 시작되어 서버에 큰 부담을 주며, 서버 과부하를 방지하기 위해 Nginx 모듈을 사용하여 요청 속도를 제한할 수 있습니다. .
Nginx 구성 파일에서 limit_req_zone
지시어를 사용하여 요청 비율 제한이 있는 공유 메모리 영역을 생성할 수 있습니다. 예: limit_req_zone
指令来创建一个请求速率限制的共享内存区域,例如:
1 2 3 |
|
以上配置创建了一个10MB大小的内存区域,限制每秒钟从同一个客户端IP地址发起的请求数不超过1个。接下来,我们可以在具体的请求处理块中使用limit_req
指令来应用这个限制,例如:
1 2 3 4 5 6 |
|
以上配置表示在/api/
路径下限制请求速率,并设置了一个突发限制值为5。这样一来,如果有大量的请求超过了限制速率,Nginx将返回503错误给客户端,并抛弃这些请求。
- 防止恶意请求
除了限制请求速率,我们还可以通过其他策略来防止恶意请求,例如:
- IP白名单/黑名单:可以通过
allow
和deny
指令来设置IP的访问控制,只允许白名单中的IP访问,或者拦截黑名单中的IP。例如:
1 2 3 4 |
|
以上配置表示只允许IP在192.168.1.0/24网段内的访问/admin/
路径。
- URI黑名单:可以通过
if
指令和正则表达式来拦截恶意请求的URI。例如:
1 2 3 4 5 |
|
以上配置表示如果请求的URI中包含/wp-admin
,则返回403错误。
- Referer检查:可以通过检查请求头中的Referer字段来判断请求的来源是否合法。例如:
1 2 3 4 5 6 7 |
|
以上配置表示如果Referer字段不是以http://example.com
或https://example.com
rrreee
limit_req
지시어를 사용하여 이 제한을 적용할 수 있습니다. 예: rrreee
위 구성은 요청이/api/에서 제한됨을 나타냅니다. code> path rate를 선택하고 버스트 제한 값을 5로 설정합니다. 이러한 방식으로 많은 수의 요청이 제한 속도를 초과하면 Nginx는 클라이언트에 503 오류를 반환하고 이러한 요청을 포기합니다. <p></p>
<ol start="2">악성 요청 방지<p></p>🎜요청 비율을 제한하는 것 외에도 다음과 같은 다른 전략을 통해 악의적인 요청을 방지할 수도 있습니다. 🎜</ol>
<ul>🎜IP 화이트리스트/블랙리스트: 다음을 통과할 수 있습니다. <code>allow
및 deny
지시문은 IP 액세스 제어를 설정하는 데 사용되며, 화이트리스트에서는 IP 액세스만 허용하거나 블랙리스트에서는 IP를 차단합니다. 예: 🎜rrreee🎜위 구성은 192.168.1.0/24 네트워크 세그먼트의 IP만 /admin/
경로에 액세스할 수 있음을 의미합니다. 🎜- 🎜URI 블랙리스트:
if
지시문과 정규식을 통해 악의적으로 요청된 URI를 차단할 수 있습니다. 예: 🎜/wp-admin
이 포함되어 있으면 403 오류가 반환된다는 의미입니다. 🎜- 🎜Referer 확인: 요청 헤더의 Referer 필드를 확인하여 요청 소스가 합법적인지 확인할 수 있습니다. 예: 🎜
http://example.com
또는 https://example.com으로 시작하지 않는 경우를 의미합니다. code>인 경우 403 오류가 반환됩니다. 🎜🎜요약하자면, Nginx는 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 풍부한 보안 보호 전략을 제공합니다. Nginx를 올바르게 구성하면 악의적인 요청으로부터 서버를 보호하고 서버의 안정성과 보안을 향상시킬 수 있습니다. 🎜🎜위 내용은 요청률을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해에 대한 소개입니다. 🎜🎜 (참고: 위 내용은 단지 코드 예시일 뿐이며 프로덕션 환경에 완전히 적용되지 않을 수 있습니다. 실제 상황과 Nginx 공식 문서에 따라 구성하시기 바랍니다.) 🎜
위 내용은 요청 비율을 제한하고 악의적인 요청을 방지하기 위한 Nginx의 보안 보호 전략에 대한 심층적인 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

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

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

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker Container Startup 단계 : 컨테이너 이미지를 당기기 : "Docker Pull [Mirror Name]"을 실행하십시오. 컨테이너 생성 : "docker"[옵션] [미러 이름] [명령 및 매개 변수]를 사용하십시오. 컨테이너를 시작하십시오 : "Docker start [컨테이너 이름 또는 ID]"를 실행하십시오. 컨테이너 상태 확인 : 컨테이너가 "Docker PS"로 실행 중인지 확인하십시오.

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

Docker에서 컨테이너 만들기 : 1. 이미지를 당기기 : Docker Pull [Mirror Name] 2. 컨테이너 만들기 : Docker Run [옵션] [미러 이름] [명령] 3. 컨테이너 시작 : Docker Start [컨테이너 이름]

nginx 버전을 쿼리 할 수있는 메소드는 다음과 같습니다. nginx -v 명령을 사용하십시오. nginx.conf 파일에서 버전 지시문을 봅니다. nginx 오류 페이지를 열고 페이지 제목을 봅니다.

클라우드 서버에서 nginx 도메인 이름을 구성하는 방법 : 클라우드 서버의 공개 IP 주소를 가리키는 레코드를 만듭니다. Nginx 구성 파일에 가상 호스트 블록을 추가하여 청취 포트, 도메인 이름 및 웹 사이트 루트 디렉토리를 지정합니다. Nginx를 다시 시작하여 변경 사항을 적용하십시오. 도메인 이름 테스트 구성에 액세스하십시오. 기타 참고 : HTTPS를 활성화하려면 SSL 인증서를 설치하고 방화벽에서 포트 80 트래픽을 허용하고 DNS 해상도가 적용되기를 기다립니다.

Nginx 서버가 다운되면 다음 문제 해결 단계를 수행 할 수 있습니다. Nginx 프로세스가 실행 중인지 확인하십시오. 오류 메시지의 오류 로그를 봅니다. nginx 구성의 구문을 확인하십시오. Nginx에 파일에 액세스하는 데 필요한 권한이 있는지 확인하십시오. 파일 디스크립터를 확인하여 열린 제한을 확인하십시오. Nginx가 올바른 포트에서 듣고 있는지 확인하십시오. Nginx 트래픽을 허용하기 위해 방화벽 규칙을 추가하십시오. 백엔드 서버 가용성을 포함한 리버스 프록시 설정을 확인하십시오. 추가 지원은 기술 지원에 문의하십시오.
