최근 nginx 사용 총화
3245 단어 개발 도구nginx역방향 에이전트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;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로컬 개발 환경을 Git/GitHub 관리로벌써 그 만마. 그 이상도 이하도 아닙니다. 모처럼 헤매어 와 주신 분에게, 본 기사의 골을 알려 드리겠습니다. GitHub에 push하여 잔디 야생 w OS:Windows10 64bit IDE:Eclipse Neo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.