최근 nginx 사용 총화

배경
nginx 는 러시아인 이 개발 한 것 으로 디자인 의 초기 목적 은 http 서버 가 되 어 C10K 문 제 를 해결 하 는 것 이다. C10K 는 실제 적 으로 10000 개의 연결 요청 을 동시에 연결 하여 처리 한 다 는 뜻 이다.nginx 는 다양한 웹 서버 기능 특성 을 가지 고 있 습 니 다. 예 를 들 어 부하 균형, 캐 시, 방문 제어 등 이 있 습 니 다. 저 는 개인 적 으로 현재 주로 ca 인증서 의 문제 로 nginx 를 사용 하고 있 기 때문에 방문 제어 에 집중 되 어 있 습 니 다. 더 세분 화 하면 역방향 에이전트 와 ssl 입 니 다.
2. nginx 는 http 서버 의 기본 설정 입 니 다.
개인 이 현재 알 고 있 는 nginx 는 주로 두 가지 용도 가 있 습 니 다. 하 나 는 http 서비스 이 고 하 나 는 메 일 서비스 입 니 다.메 일 서 비 스 는 비교적 특수 한 응용 장면 을 대상 으로 하 는데 http 는 상대 적 으로 더욱 광범 위 하 다. 위 에서 말 한 역방향 에이전트 와 ssl 도 http 서비스 에 만 적용 된다.nginx 의 사용 은 설치 외 에 가장 중요 한 것 은 설정 입 니 다.설치 할 때 해당 하 는 지원 모듈 을 설정 해 야 합 니 다. 설치 되 어 있 으 면 구체 적 인 기능 수요 에 따라 파일 을 설정 해 야 합 니 다.완전한 http 서비스의 nginx 설정 파일 입 니 다. 구 조 는 대체적으로 다음 과 같 아야 합 니 다.
로그, 프로 세 스 id, 사용자 등 기본 명령 설정: user tzx;worker_processes 1; pid logs/nginx.pid; error_log logs/error.log; #이벤트 설정, 예 를 들 어 이벤트 {worker connections 1024;} \ # http 서비스 설정, 예 를 들 어 http{\ # http 서비스 기본 설정, 예 를 들 어 include mime. types, default type application / ocket - stream, keepalive timeout 65; \ # 가상 서버 설정 은 매우 중요 합 니 다. 하나의 nginx 는 여러 포트 와 도 메 인 이름 을 동시에 설정 합 니 다. 주로 여기에 있 습 니 다. 예 를 들 어 server.{listen 8000; server name blog. tzx. cn; \ # 경로 설정, 이전 층 의 server 가 같은 nginx 설정 여러 포트, 도 메 인 이름 문 제 를 해결 했다 면 도 메 인 이름 포트 아래 여러 url 맵 문 제 를 해결 할 수 있 습 니 다. 예 를 들 어 location / test {proxy passhttp://localhost:8080/test; proxy_http_version 1.1; } location /test1 { proxy_pass http://localhost:8088/test; proxy_http_version 1.1; } } }
3. nginx 역방향 대리
실제로 위 설정 의 경로 설정 location 은 이른바 nginx 역방향 에이전트 입 니 다. 위 에 있 는 location 설정 이 비교적 단일 할 뿐 이 고 그 밖 에 마스크 설정, 정적 파일 설정 등 여러 가지 방식 도 있 습 니 다. 그 안에 요청 한 경로 가 url 에 추가 되 거나 경로 url 에 추가 되 지 않 습 니 다. 예 를 들 어:
 location / {
       root   html;
       index  index.html index.htm;
  }
  

예 를 들 어 위의 설정 은 루트 가 가리 키 는 것 은 로 컬 디 렉 터 리 입 니 다. index 는 정적 파일 을 가리 키 고 있 습 니 다. 루트 경로 에 접근 을 요청 하면 nginx 서버 는 html 디 렉 터 리 에서 index. html 또는 index. htm 를 찾 습 니 다.
4. https 안전 제어
https 는 http + ssl 입 니 다. http 프로 토 콜 에 ssl 보안 검 사 를 추 가 했 습 니 다. nginx 는 https 를 사용 하려 면 ssl 을 지원 하 는 모듈 을 먼저 설정 해 야 합 니 다. 주의해 야 할 것 은 nginx 의 ssl 모듈 은 openssl 에 의존 합 니 다. nginx 가 ssl 을 지원 하 는 모듈 을 추가 한 후에 nginx 의 프로필 에 https 요청 과 관련 된 가상 서버 를 설정 해 야 합 니 다. 사실은 http 를 바탕 으로 ssl 을 추가 하 는 것 입 니 다.ssl 사용, 지정 서버 인증서, 루트 인증서, 지원 하 는 프로 토 콜 형식 등 을 포함 한 설정 입 니 다. 필요 한 경우 nginx 내 장 된 변 수 를 사용 하여 ssl 인증서 와 관련 된 정 보 를 실제 대상 서비스 에 전달 할 수 있 습 니 다. 예 를 들 어 앞에서 말 한 인증서 메 시 지 를 헤더 에 넣 고 자바 배경 에서 읽 고 사용 할 수 있 습 니 다. ssl 을 추가 하고 양 방향 인증 을 엽 니 다.nginx 가상 서버 설정 은 다음 과 같 습 니 다.
 server {
       listen 443;
       server_name blog.tzx.cn; 
       ssl on;
       ssl_certificate  /usr/server.crt; #     
       ssl_certificate_key /usr/server.key; #     key
       ssl_session_timeout 5m;
       ssl_client_certificate /usr/root.pem; #    
       ssl_verify_client on; #       。
       ssl_verify_depth 2; #     
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols  SSLv3 TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;
	location /test {
          proxy_pass   http://localhost:8080/test;
          proxy_http_version 1.1;
        }
    }
    

좋은 웹페이지 즐겨찾기