nginx 접근 제어 설정

2139 단어
nginx 접근 제어
1. IP 기반 접근 제어 (ngx http access module)
이 모듈 은 일부 클 라 이언 트 주소 에 접근 하 는 것 을 제한 할 수 있 습 니 다.프로필 은 다음 과 같 습 니 다:
location ~ ^/index.html {
        root   /app;  
        deny all;
        allow 127.0.0.1;
        index  index.html index.htm;
    }

그 중에서 ~ 요청 경로 url 의 패턴 이 일치 하 는 것 을 표시 합 니 다. 그 중에서 루트 뒤의 경 로 는 index. html 가 루트 디 렉 터 리 아래 에 있 는 경로 입 니 다. 이 설정 은 / app 아래 index. html 파일 은 로 컬 접근 만 허용 한 다 는 뜻 입 니 다.
일부 ip 네트워크 에 만 블랙 리스트 를 설정 하면 다음 과 같이 설정 합 니 다.
location ~ ^/index.html {
        root   /app;  
        deny 192.168.1.0/24;192.168.0.0/16;
        allow all;
        index  index.html index.htm;
    }

모든 디 렉 터 리 에 있 는 sql | log | txt | jar | war | sh | py 접미사 에 접근 하지 못 하 게 하려 면 다음 과 같이 설정 하 십시오: location ~. *. (sql | log | txt | jar | war | sh | py) {deny all;} 설정 이 완료 되면 설정 재 부팅 을 확인 하 십시오. 명령 은 다음 과 같 습 니 다.
nginx -tc /etc/nginx/nginx.conf 
systemctl reload nginx

ngx_http_access_module 의 한계 성
클 라 이언 트 가 프 록 시 를 통 해 접근 할 때 nginx 의 remoteaddr (서버 와 직접 연 결 된 클 라 이언 트 ip 을 가 져 옵 니 다) 가 져 온 것 은 프 록 시 ip 입 니 다.그래서 http 를 사용 해 야 합 니 다.x_forwarded_for (클 라 이언 트 및 미들웨어 대 리 를 기록 할 수 있 는 ip)
2. 사용자 인증 기반 접근 제어 (ngx http auth basic module)
이 모듈 은 "HTTP 기본 인증 프로 토 콜" 을 사용 하여 사용자 이름과 비밀 번 호 를 검증 하여 자원 에 대한 접근 을 제한 할 수 있 습 니 다.
프로필 을 편집 하기 전에 사용자 이름과 비밀 번 호 를 저장 하 는 파일 user 를 만들어 야 합 니 다.file, 파일 형식 은 다음 과 같 습 니 다.
name1:password1
name2:password2

암호 화 는 htpasswd 를 선택 하 였 습 니 다.따라서 이 파일 을 만 들 기 전에 암호 화 에 대응 하 는 패 키 지 를 설치 해 야 합 니 다. 명령 은 다음 과 같 습 니 다.
yum -y install httpd-tools

user 생 성file:
htpasswd -c -m /var/users cuicui qazwsx

프로필 편집:
location ~ ^/index.html {
        root   /app;
    auth_basic "Auth access test! input your password!";
    auth_basic_user_file  /var/users;
        index  index.html index.htm;
    }

설정 이 완료 되면 설정 재 부팅 을 확인 하 십시오. 명령 은 다음 과 같 습 니 다.
nginx -tc /etc/nginx/nginx.conf 
systemctl reload nginx

좋은 웹페이지 즐겨찾기