실전 Nginx (3) - 액세스 제어 및 사용자 인증 모듈 및 nginx 내장 상태 페이지 소개

1. 접근 제어 모듈 상세 설명
Nginx 의 접근 제어 모듈 은 ngxhttp_access_module, 실제 deny 와 allow 명령 은 ngx 에 속 합 니 다.http_access_module. 저 희 는 특정한 uri 나 경 로 를 제어 하여 접근 하지 못 하 게 하려 면 이 모듈 에 의존 해 야 합 니 다.
1. 모듈 설치:
nginx 를 컴 파일 할 때 접근 제어 모듈 인 자 를 지정 할 필요 가 없습니다. 이 모듈 은 nginx 에 내장 되 어 있 습 니 다. 설치 에 사용 되 지 않 는 한 -- without - httpaccess_module。
2. 모듈 명령 어:
  :allow
  :
Syntax:allow address | CIDR | unix: | all;
   :
Default:―
   :
Context:http, server, location, limit_except

ip 이나 ip 세그먼트 에 접근 할 수 있 습 니 다. 유 닉 스: 를 지정 하면 socket 에 접근 할 수 있 습 니 다. 주의: 유 닉 스 가 1.5.1 에 새로 추 가 된 기능 입 니 다. 버 전이 이것 보다 낮 으 면 이 방법 을 사용 하지 마 십시오.
  :deny
  :
Syntax:deny address | CIDR | unix: | all;
   :
Default:―
   :
Context:http, server, location, limit_except

어떤 ip 이나 ip 세그먼트 에 접근 하 는 것 을 금지 합 니 다. 유 닉 스: 를 지정 하면 socket 에 접근 하 는 것 을 금지 합 니 다. 같은 곳 에 주의 하 십시오.
3. 홈 페이지 인 스 턴 스:
location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

설명:
위 에서 아래로 의 순서, iptables 와 유사 합 니 다.일치 하면 튀 어 나 옵 니 다.위의 예 와 같이 먼저 192.168.1.1 을 금 지 했 고 그 다음 에 3 개의 네트워크 를 허용 했다. 그 중에서 ipv 6 가 포함 되 어 있 고 마지막 에 일치 하지 않 는 IP 는 모두 접근 을 금지 했다. 
2. 사용자 인증 모듈 상세 설명
nginxd 의 사용자 인증 모듈 은 ngxhttp_auth_basic_module, 사용자 인증 모듈 을 사용 하여 사용자 가 특정 페이지 에 접근 하 는 것 을 제어 해 야 합 니 다.
1. 모듈 설치
nginx 를 컴 파일 할 때 접근 제어 모듈 인 자 를 지정 할 필요 가 없습니다. 이 모듈 은 nginx 에 내장 되 어 있 습 니 다.
2. 모듈 명령 어:
    :
  :
Syntax:auth_basic string | off;
   :
Default:auth_basic off;
   :
Context:http, server, location, limit_except
    :
  :
Syntax:auth_basic_user_file file;
   :
Default:―
   :
Context:http, server, location, limit_except

3. 홈 페이지 인 스 턴 스:
location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}

설명:
기본 인증 모듈 을 사용 합 니 다. 인증 이름 은 closed site 이 고 인증 파일 은 nginx 설정 파일 경로 에 저 장 된 conf / htpasswd 입 니 다.
3. nginx 의 내 장 된 상태 페이지 에 대한 접근 제어 와 사용자 인증 을 실시 합 니 다.
1. nginx 내장 상태 페이지 소개
nginx 는 phop - fpm 와 마찬가지 로 상태 페이지 를 만 들 었 습 니 다. nginx 의 상 태 를 알 고 싶 거나 nginx 를 감시 하 는 데 도움 이 됩 니 다.
2. nginx status 설정 을 사용 하고 172.16.0.0 / 16 의 네트워크 에 만 접근 할 수 있 습 니 다.
가상 호스트 에 location 이나 접근 하고 싶 은 호스트 를 추가 합 니 다.
[root@www ~]# vim /etc/nginx/extra/nginx-vhost.conf 
server {
        listen   *:80 default_server;
        server_name www.stu31.com;
        index index.html index.htm ;
        root  /www/vhosts/www1;
        access_log  /var/log/nginx/www.stu31.com.log main ;
        location /status {
                stub_status on;
                allow 172.16.0.0/16;
                deny all;
        }
}

2. nginx 다시 시작
문법 검사:
[root@www ~]# service nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

다시 시작 nginx
[root@www ~]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

3. status 페이지 방문:
[root@www ~]# curl http://172.16.31.40/status
Active connections: 1 
server accepts handled requests
 6 6 5 
Reading: 0 Writing: 1 Waiting: 0

4. nginx status 상세 설명
active connections �C        
server accepts handled requests ―      6    ,     6   ,      5   
reading ―          .
writing ―            
waiting ―    keep-alive     ,      active �C (reading+writing),      Nginx                      .

5. 가상 오픈 사용자 인증
[root@www ~]# vim /etc/nginx/extra/nginx-vhost.conf 
server {
        listen   *:80 default_server;
        server_name www.stu31.com;
        index index.html index.htm ;
        root  /www/vhosts/www1;
        access_log  /var/log/nginx/www.stu31.com.log main ;
        location /status {
                stub_status on;
                auth_basic "Nginx-status";
                auth_basic_user_file /etc/nginx/.htpasswd;
                allow 172.16.0.0/16;
                deny all;
        }
}

6. 사용자 인증 파일 만 들 기
[root@www ~]# htpasswd -c -m /etc/nginx/.htpasswd status
New password: 
Re-type new password: 
Adding password for user status
[root@www ~]# ll -a /etc/nginx/.htpasswd 
-rw-r--r-- 1 root root 45 Dec 27 12:33 /etc/nginx/.htpasswd

7. nginx 서비스 다시 시작
[root@www ~]# service nginx restart

8. 사용자 이름 비밀 번 호 를 입력 하여 nginx 상태 페이지 에 접근:
[root@www ~]# curl -u status:status http://172.16.31.40/status
Active connections: 1 
server accepts handled requests
 4 4 4 
Reading: 0 Writing: 1 Waiting: 0

방문 성공.
이로써 nginx 의 방문 제어 모듈 과 사용자 인증 모듈 및 nginx 내장 상태 페이지 를 여 는 지식 이 소개 되 었 습 니 다!

좋은 웹페이지 즐겨찾기