4. Nginx 모듈
8880 단어 nginxnginx-moduleauth
1.ngx_http_stub_status_module
http://nginx.org/en/docs/http... 。
이 모듈 은 nginx 가 패 킷 처리 에 대한 기본 정 보 를 볼 수 있 습 니 다.
#
location /status {
stub_status;
}
방문
/status
, 전 시 된 데 이 터 는 다음 과 같 습 니 다.Active connections: 4
server accepts handled requests
310840 310840 481035
Reading: 0 Writing: 1 Waiting: 3
2. ngx_http_random_index_module
http://nginx.org/en/docs/http...
이 모듈 은 디 렉 터 리 에서 어떤 파일 을 무 작위 로 가 져 와 기본 홈 페이지 로 사용 합 니 다.
/usr/share/nginx/html/random
디 렉 터 리 에 aaa.html
, bbb.html
, ccc.html
세 개의 파일 이 있다 면 다음 설정 을 사용 하면 됩 니 다.location /random {
root /usr/share/nginx/html;
random_index on;
}
다음 코드 는 무 작위 로
aaa
, bbb
, ccc
이 세 html 중 하 나 를 되 돌려 줍 니 다.curl http://127.0.0.1/random/
3. ngx_http_sub_module
http://nginx.org/en/docs/http...
응답 내용 의 지정 한 문자열 을 바 꾸 는 데 사용 합 니 다.
location / {
sub_filter '
4. ngx_http_limit_conn_module
http://nginx.org/en/docs/http...
HTTP 프로 토 콜
요청 및 연결
설명 하 다.
HTTP 1.0
TCP 는 다시 사용 할 수 없습니다.
하나의 연결, 하나의 요청
HTTP 1.1
순차 적 TCP 재 활용
하나의 연결 로 여러 요청 을 순서대로 보 낼 수 있 습 니 다.
HTTP 2.0
다 중 TCP 재 활용
하나의 연결 로 여러 요청 을 병행 할 수 있 습 니 다.
저 희 는 nginx
zone
를 동적 데이터 베이스 로 이해 할 수 있 습 니 다. 1M 의 zone 메모 리 는 최소 16000 개의 기록 을 저장 하고 사용자 의 요구 가 합 법 적 인지 판단 할 수 있 습 니 다. 즉, 현재 IP 가 데이터 베이스 에 기록 한 수량 이 제한 을 초과 하 는 지 계속 조회 하 는 것 입 니 다.다음 경로 요청 에서 저 희 는 사용자 의 동시 연결 수 를 각각 5 개 와 10 개 로 제한 합 니 다.
주의: 동시 다발 은 같은 시간의 요 구 량 을 말 하 며, 초당 요 구 량 과 차이 가 있 습 니 다.
http {
limit_conn_zone $binary_remote_addr zone=addr_conn:10m;
...
server {
...
location / {
limit_conn addr_conn 5;
...
}
location ~ \.php$ {
limit_conn addr_conn 10;
...
}
}
}
코드 효 과 를 테스트 하기 위해 서, 우 리 는 설치
httpd-tools
하여 ab 테스트 를 진행 할 수 있다.limit_conn
의 테스트 는 내부 네트워크 테스트 든 외부 네트워크 테스트 든 모두 가능 하 다.yum install httpd-tools
ab -n 20 -c 20 http://127.0.0.1/
실행
ab -n 20 -c 20 http://127.0.0.1/
, 총 20 개의 연결 이 실 패 했 습 니 다. 15 개 실 패 했 습 니 다. 성공 적 으로 만 든 연결 수 는 5 개 에 불과 합 니 다.항목
수치
Complete requests:
20
Failed requests:
15
실행
ab -n 20 -c 20 http://127.0.0.1/index.php
, 총 20 개의 연결 이 실 패 했 습 니 다. 10 개의 연결 이 실 패 했 습 니 다. 성공 적 으로 만 든 연결 수 는 10 개 에 불과 합 니 다.항목
수치
Complete requests:
20
Failed requests:
10
이상 의 테스트 를 통 해 얻 을 수 있 는 결론 은 코드 는 사람 을 속 이지 않 는 다 는 것 이다.
주파수 제한 으로 인 한
Failed requests
에 대해 우 리 는 nginx
의 error.log
에서 도 오류 기록 을 발견 할 수 있다.만약 오류 로그 가 너무 많다 면, 우 리 는 방 문 량 이 정상 인지 확인 해 야 한다.정상 이 라면 매개 변수 설정 을 최적화 하 는 방법 도 고려 해 야 한다.2017/07/31 11:41:37 [error] 24550#0: *580766 limiting connections by zone "addr_conn", client: 119.130.188.64, server: www.siguoya.name, request: "GET / HTTP/1.0", host: "www.siguoya.name"
2017/07/31 11:41:37 [error] 24550#0: *580767 limiting connections by zone "addr_conn", client: 119.130.188.64, server: www.siguoya.name, request: "GET / HTTP/1.0", host: "www.siguoya.name"
5.ngx_http_limit_req_module
http://nginx.org/en/docs/http...
ngx_http_limit_conn_module
병발 연결 수 를 제한 하 는 데 사용 되 고 ngx_http_limit_req_module
병발 요청 수 를 제한 하 는 데 사용 된다.실제 업무 장면 에서 보통 사용 ngx_http_limit_req_module
이 더 많 을 것 이다.http {
limit_req_zone $binary_remote_addr zone=addr_req:10m rate=1r/s;
...
server {
...
location / {
limit_req zone=addr_req;
}
}
}
6.ngx_http_access_module
http://nginx.org/en/docs/http...
이 모듈 은 제한
ip
을 통 해 방문 통 제 를 실현 할 수 있 지만 단점 은 우리 가 가끔 진실 한 IP 를 얻 지 못 하고 사용자 의 IP 도 동태 적 으로 변화 할 수 있 으 며 오 살 되 기 쉽다 는 것 이다.다음 과 같은 방법 으로 보완 할 수 있다.
x_forwarded_for
그러나 믿 을 수 없고 수정 되 거나 전달 되 지 않 을 가능성 이 있다 location / {
allow 192.168.1.0/24;
deny all;
}
7.ngx_http_auth_basic_module
http://nginx.org/en/docs/http...
이 모듈 은 사용자 가 특정 페이지 를 방문 할 때 정확 한 계 정과 비밀 번 호 를 입력 해 야 접근 할 수 있 도록 요구 하여 비교적 초급 권한 제어 기능 을 실현 할 수 있다.
location /auth_basic {
auth_basic "custom comment for this auth_basic";
auth_basic_user_file /usr/local/nginx/conf/.passwd;
}
auth_basic_user_file
사용 한 파일 에 대하 여 우 리 는 htpasswd
이 도 구 를 사용 하여 실현 할 수 있다.#
htpasswd -bc username password >> .passwd
#
htpasswd -b username password >> .passwd
ngx_http_auth_basic_module
의 결함 은 다음 과 같다. 사용자 권한 은 권한 수여 문서 에 의존 하기 때문에 기업 에 여러 개의 사용자 계 정 체계 가 있 고 운영 에 번 거 로 움 을 초래 하기 쉽다.해결 방법:
lua
효율 적 인 인증 실현 nginx-auth-ldap
모듈 과 ldap
연결 관심 있 는 방문 가능 https://www.nginx.com/resourc..., 여기 서 일일이 소개 하지 않 겠 습 니 다.
특정한 제목 으로 읽다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.