Nginx의 TLS 세션 재개
공유 세션 캐싱 활성화 : SSL_SESSION_CACHE 공유 구성 : SSL : 10M 및 SSL_SESSION_TIMEOUT 10M, 단일 서버 또는로드 밸런서에 의해 끈적 끈적한 세션을 활성화하는 시나리오에 적합합니다. 2. 세션 티켓 활성화 : SSL_SESSION_TICKETS를 구성하고 Unified Ticket.key 파일을 구성합니다. 멀티 서버 클러스터 및 세션에 적합합니다. 3. 세션 멀티플렉싱 확인 : OpenSSL 또는 CURL 명령을 사용하여 "재사용"또는 세션 ID 일치가 연결되어 있음을 확인하십시오. 4. 일반적인 실수 방지 : 캐시가 활성화되어 있는지 확인하고 티켓 키가 일관되고 캐시 크기가 충분하며 stub_status를 통해 멀티플렉싱 속도를 모니터링하여 성능을 최적화하고 궁극적으로 TLS 핸드 쉐이크 오버 헤드를 줄이고 보안을 보장하는 목표를 달성합니다.
Nginx의 TLS 세션 재개는 클라이언트와 서버 간의 반복 된 TLS 핸드 셰이크의 오버 헤드를 줄이는 성능 최적화입니다. 클라이언트가 NGINX 서버 (예 : 페이지 자산로드 또는 API 검색 중)에 다시 연결하면 이전 세션을 복구하면 전체 핸드 셰이크, 대기 시간 및 CPU 사용량 절단을 피할 수 있습니다.

효과적으로 구성하는 방법은 다음과 같습니다.
session 세션 캐싱을 활성화합니다
NGINX는 공유 메모리 세션 캐시 (다중 노동자 설정의 경우)와 SSL 세션 티켓 (서버를 통한 무국적 재개)을 모두 지원합니다.

1. 공유 세션 캐시 (서버 재개)
ssl_session_cache 공유 : ssl : 10m; ssl_session_timeout 10m;
-
10m
≈ 40,000 세션 (1 세션 ~ 256 바이트) -
10m
타임 아웃은 세션이 10 분 동안 유효성을 유지하는 것을 의미합니다 - 이것은 단일 서버 설정 또는로드 밸런서의 스티커 세션에 적합합니다.
2. 세션 티켓 (SANTELESS, 클러스터에 적합)
ssl_session_tickets on; ssl_session_ticket_key /etc/nginx/ticket.key;
- 키를 안전하게 생성하십시오.
OpenSsl Rand 48> /etc/nginx/ticket.key chmod 400 /etc/nginx/ticket.key
- 여러 NGINX 인스턴스가있는 경우 모두 동일한 키를 사용하여 교차 서버 재개를 허용하십시오.
- 보안을 위해 주기적으로 키를 회전합니다 (활성 세션의 경우 오래된 키를 간단히 유지하십시오)
? 작동하는지 확인하십시오
openssl
사용하여 세션 재사용을 테스트하십시오.
# 첫 번째 연결 에코 | OpenSSL S_CLIENT -CONNECT YOUSTITE.com:443-ServerName yoursite.com # 찾기 : "Session-ID :"및 "Session-ID-CTX :" # 즉시 다시 연결 (시간 초과 내) 에코 | OpenSSL S_CLIENT -CONNECT YOUSTITE.com:443-ServerName yoursite.com
두 번째 연결이 Reused, TLSv1.3
또는 Session-ID:
첫 번째 재개가 작동합니다.

또는 curl
Verbose TLS로 확인하십시오.
curl -v https://yoursite.com ---tls-max 1.2 2> & 1 | grep -i "재사용"
⚠️ Common Gotchas
- 캐시 없음 = 재개 없음 :
ssl_session_cache
설정되지 않은 경우 NGINX 기본값은off
있습니다. 각 연결은 완전한 핸드 셰이크를 수행합니다. - 티켓 키 불일치 : 다중 서버 설정에서 다른 키 브레이크 재개-공유 키를 사용하십시오.
- 너무 작은 캐시 :
nginx -T
로 모니터링하고 필요한 경우 stub_status를 통해 활성 세션을 확인하십시오. - TLS 1.3 : 세션 ID 대신 "PSK"(사전 공유 키)를 사용하지만 캐싱이 활성화되면 NGINX가 자동으로 처리합니다.
보너스 : 재개율을 모니터링하십시오
stub_status
활성화하고 확인하십시오.
위치 /nginx_status { stub_status on; 허용 127.0.0.1; }
그 다음에:
curl http : // localhost/nginx_status
찾기 :
SSL 핸드 셰이크 : 1000 SSL 핸드 셰이크 재사용 : 750
→ 75% 재개율 = 좋습니다!
그게 다야. 적절한 세션 캐싱 및 티켓 키를 사용하면 보안을 손상시키지 않고 핸드 셰이크 오버 헤드를 줄입니다. 키를 회전시키고 생산에서 캐시 사용을 모니터링하는 것을 잊지 마십시오.
위 내용은 Nginx의 TLS 세션 재개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

TOSETUPANNGINXSERVERBLOCK, FIRSTANDISTITSTRSTRUCTUREUSINGSTERTIPTIONSTIPTINTSLIKELISTEN, SERVER_NAME, andlocation; 다음, CreateAdirectoryStructureForyOUrsitesuchas/var/examplectermissions;

특정 사용자 에이전트를 차단하려면 Nginx, Apache 또는 코드 (PHP, Python)에서 구현할 수 있습니다. 1. nginx에서 if and return 403에 의해 $ http_user_agent 판사; 2. Apache에서 Setenvifnocase를 사용하고 접근을 거부하기 위해 거부하십시오. 3. 프로그램에서 사용자 에이전트를 판단하고 요청을 가로 채십시오. 차단 해야하는 일반적인 UA에는 파이썬 요청, 컬, 빈 UA 등이 포함됩니다. 적절한 방법을 선택하면 쓰레기 트래픽과 보안 위험이 효과적으로 줄어들 수 있습니다.

MP4 비디오 파일을 효율적으로 제공하려면 바이트 범위 요청을 활성화하고 파일 구조 최적화, 합리적인 인코딩 및 압축 및 전략적 캐싱을 채택해야합니다. 먼저, 비디오 점프, 중단 된 방송 및 적응 형 비트 스트림을 지원하기 위해 바이트 범위 요청 (수락 범위 : 바이트)을 활성화합니다. 둘째, QT-FastStart와 같은 도구를 사용하여 MOOV 원자를 파일의 시작으로 이동하여 하단 플레이를 달성합니다. 셋째, H.264/H.265 인코딩을 사용하고, 비트 속도를 합리적으로 설정하고, 이중 패스 인코딩을 활성화하여 품질을 보장하면서 파일 크기를 줄입니다. 마지막으로, 장기 캐시 제어 헤더를 설정하고 Edge Caching에 CDN을 사용하여 서버로드를 줄이고 응답 속도를 향상시킵니다.

NGINX 서버의 보안을 보호하기위한 주요 조치에는 다음이 포함됩니다. 1. HTTPS 암호화 된 연결을 구성하고, rectbot을 통해 자동으로 구성하고, 강제 점프 및 적절한 암호화 스위트를 통해 자동으로 구성하고, 자동 갱신을 가능하게합니다. 2. 액세스 권한을 제한하고 IP 제어 및 Basicauth 인증을 통해 민감한 경로를 보호합니다. 3. 정보 누출을 끄고, 버전 번호를 숨기고, 디렉토리 브라우징을 금지하고, 오류 페이지를 사용자 정의하여 공격 표면을 줄입니다.

Nginx를 사용하여 HTTP로드 밸런싱을 구현하는 방법은 무엇입니까? 답은 다음과 같습니다. 1. 업스트림 모듈을 사용하여 백엔드 서버 그룹을 정의하고 서버 또는 위치에서 proxy_pass를 통해 요청을 전달합니다. 2. 지원 폴링, 가중 투표, 최소 연결 및 IP 해싱 정책; 3. 안정성을 향상시키기 위해 다운, 백업, FAIL_TIMEOUT 및 MAX_FAILS 매개 변수를 구성 할 수 있습니다. 4. 구성을 수정 한 후 Nginx-T Check Syntax를 실행하고 Nginx-Sreload를 사용하여 적용됩니다. 예를 들어, 기본 구성 구조에는 기본적으로 트래픽을 배포하기 위해 폴링을 사용하여 3 개의 백엔드 노드가 포함되며 가중 폴링은 중량별 요청을 할당 할 수 있습니다.

NGINX 시작 실패는 일반적으로 구성 오류, 포트 충돌 또는 권한 문제로 인해 발생합니다. 먼저 nginx 오류 로그를 확인하고 명령 Sudotail-F/var/log/nginx/error.log를 사용하여 최신 오류 정보를 실시간으로보십시오. 둘째, 구성 파일 구문을 테스트하고 SUDONGINX-T를 실행하여 구문 오류가 없는지 확인하십시오. 그런 다음 다른 프로세스가 포트 80 또는 443을 차지하는지 확인하고 SudonetStat-Tulpn | grep ': 80 \ | : 443'을 사용하여 충돌을 감지하고 처리합니다. 마지막으로 NGINX가 관련 디렉토리 및 파일에 액세스 할 수있는 권한이 있는지 확인하기 위해 파일 권한 및 소유권을 확인하십시오.

Nginx에서 Server_name을 사용하여 여러 도메인 또는 하위 도메인과 일치 할 때 와일드 카드 및 정규식을 통해 달성 할 수 있습니다. 1. 와일드 카드를 사용할 때 별표는 시작 또는 끝에만 사용할 수 있으며 완전한 레이블 경계 여야합니다. 예를 들어, .example.com은 첫 번째 수준의 하위 도메인과 일치 할 수 있지만 루트 도메인 또는 다단계 하위 도메인은 포함되지 않습니다. 루트 도메인과 1 단계 하위 도메인과 일치 해야하는 경우 example.com*.example.com으로 작성해야합니다. 2. 정규식을 사용하는 경우 ~^\ w. (dev | test)와 같은 ~부터 시작해야합니다. $ .dev 또는 .test로 끝나는 도메인 이름과 캡처 그룹 호출을 지원할 수 있습니다. 3. 일치하는 우선 순위는 정확한 이름입니다> 가장 긴 와일드 카드 접두사> 가장 긴 와일드 카드 접미사 및

Multi-Core 성능을 최대한 활용하기 위해 Worker_Processes (즉, CPU 코어 수)로 설정하십시오. 2. 시스템 파일 설명자 제한에 따라 Worker_Connection (예 : 1024 이상)을 설정하고 Ulimit-N이 충분히 커질 수 있도록 트래픽이 예상됩니다. .
