찾다
운영 및 유지보수엔진스HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

1. 서문

# ssl写在443端口后面。这样http和https的链接都可以用
    listen 443 ssl http2 default_server;
    server_name chat.chengxinsong.cn;
    
  # hsts的合理使用,max-age表明hsts在浏览器中的缓存时间,includesubdomainscam参数指定应该在所有子域上启用hsts,preload参数表示预加载,通过strict-transport-security: max-age=0将缓存设置为0可以撤销hsts
  add_header strict-transport-security "max-age=63072000; includesubdomains; preload";
    
  ssl_certificate   /usr/local/nginx/cert/2540136_chat.chengxinsong.cn.pem;
    ssl_certificate_key /usr/local/nginx/cert/2540136_chat.chengxinsong.cn.key;
    
  # 分配20mb的共享内存缓存,不同工作进程共享tls会话信息
  # ssl_session_cache shared:ssl:20m;
    
  # 设置会话缓存过期时间1h
  ssl_session_timeout 60m;
    
  # tls协议的合理配置
  # 指定tls协议的版本,不安全的ssl2和ssl3要废弃掉
  ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
    
  # 启用ssl_prefer_server_ciphers,用来告诉nginx在tls握手时启用服务器算法优先,由服务器选择适配算法而不是客户端
  ssl_prefer_server_ciphers on;
    
  # 优先选择支持前向加密的算法,且按照性能的优先顺序排列
  ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4;
    
  # 会话恢复的合理使用
  # 配置会话票证,减少了tls握手的开销
  ssl_session_tickets on;

그런 다음 nginx 구성 확인을 실행합니다. nginx -t

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

은 http2.0에 ngx_http_v2_module이 없음을 의미합니다. nginx에는 http_ssl_module 모듈이 없습니다. 컴파일하고 설치할 때 --with-http_ssl_module 구성을 가져오세요.

2. 정보를 검색하여 이유를 찾으세요

위의 이유는 nginx가 1.9.5부터 ngx_http_spdy_module 모듈을 http_v2_module 모듈로 대체하고, 공식적으로 http2 프로토콜을 지원하기 시작했기 때문입니다.

하지만 내 nginx는 1.12.2입니다. ngin 버전에서는 문제가 되지 않습니다

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

참고:

1 그리고 openssl 라이브러리 버전은 1.0.2 이상에서 컴파일해야 합니다. 1. http/2 프로토콜 지원을 활성화하려면 nginx 1.10 이상 및 openssl 라이브러리 버전 1.0.2 이상을 컴파일해야 합니다.

2.http2.0은 https가 활성화된 웹사이트만 지원합니다.

서버의 openssl 라이브러리 버전일 수도 있는데, 1.0.2로 확인됩니다.

그래서 여전히 더 높은 포인트로 업그레이드해야 합니다.

3. openssl 업그레이드

http2.0 프로토콜에서는 alpn(애플리케이션 계층 프로토콜 협상, 애플리케이션 계층 프로토콜 협상) 지원이 포함됩니다. 현재 모든 주류 Unix 서버 시스템에 내장된 openssl 라이브러리는 다음과 같습니다. 1.0 .2 버전보다 낮습니다. openssl의 명령줄 도구를 사용하면 현재 http2 서비스가 alpn을 지원하는지 확인할 수 있습니다.

설치 디렉터리 찾기

1. 최신 버전의 openssl 라이브러리를 다운로드하고

wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/openssl
make && make install

2. 이전 버전 라이브러리를 교체하세요

mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#链接新库文件
ln -s /usr/local/openssl/lib/libssl.so /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/lib/libcrypto.so /usr/local/lib64/libcrypto.so
#检查更新后的openssl依赖库是否是1.1.0f
strings /usr/local/lib64/libssl.so | grep openssl
#显示结果表明已升级到最新版本链接库
openssl 1.1.0f 25 may 2017

#配置openssl库文件的搜索路径
echo '/usr/local/openssl/lib' >> /etc/ld.so.conf
#使修改后的搜索路径生效
ldconfig -v
#查看openssl版本,结果显示升级成功
openssl version
openssl 1.1.0f 25 may 2017

4. nginx SSL 모듈을 활성화하세요

기본적으로 컴파일된 nginx는 그렇지 않습니다. h2 모듈을 포함합니다. 컴파일할 매개변수를 추가해야 합니다. 게시 시점을 기준으로 nginx 1.9 개발 버전 이상의 소스 코드는 소프트웨어 소스 웨어하우스에서 다운로드한 것들은 기본적으로 컴파일 매개변수를 추가해야 합니다. . nginx는 더 이상 spdy를 지원하지 않습니다.

컴파일한 nginx가 이를 지원하지 않는 경우 ./configure에 --with-http_v2_module을 추가하세요. SSL 지원이 없으면 --with-http_ssl_module

1도 추가해야 합니다. 코드 패키지를 다운로드하여 구성 지원 http2

에 있는지 확인하세요. 이때 다운로드 시 소스 코드 폴더에서 이 구성을 찾아야 합니다. 참고: 컴파일 후 폴더는 아닙니다.

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

"./configure" 구성에서 "--with"는 모듈을 활성화한다는 의미입니다. 즉, "--without"은 모듈을 비활성화한다는 의미입니다. 이는 이러한 모듈이 컴파일 중에 자동으로 빌드되지 않음을 의미합니다. nginx를 가볍게 실행하려면 불필요한 모듈을 제거할 수 있습니다.

Execute ./configure --help

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

위 그림에서 우리는 nginx가 컴파일할 때 http_ssl_module과 http_v2_module을 자동으로 빌드하지 않는다는 것을 알 수 있습니다. 따라서 nginx를 다시 컴파일해야 합니다.

2. 매개변수 컴파일 추가

새 구성 정보는 다음과 같이 작성해야 합니다.

./configure --prefix=/usr/local/nginx --with-http_v2_module --with-http_ssl_module --with-openssl=/home/soft/openssl-1.1.0f

위의 /usr/local/nginx 경로는 컴파일 후의 패키지 경로입니다.

그런 다음 ./configure에 --with-http_v2_module을 추가하세요. SSL 지원이 없으면 --with-http_ssl_module도 추가해야 하며, 방금 1.1.0으로 업데이트된 openssl도 추가해야 합니다. with-openssl =/home/soft/openssl-1.1.0f.

구성이 완료된 후 위 명령을 실행하세요

구성이 완료된 후

make

여기에서 make install을 수행하지 마세요. 그렇지 않으면 덮어쓰기 설치가 됩니다

3.

(1) 그런 다음 원본을 백업합니다. 이미 설치된 nginx가 있습니다

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_07_22.bak

(2) nginx를 닫은 다음 방금 컴파일한 nginx로 원본 nginx를 덮어씁니다.

nginx 닫기

./nginx -s quit

컴파일된 nginx를 원본 nginx로 이동합니다.

cp ./objs/nginx /usr/local/nginx/sbin/

(3 ) nginx를 시작

./nginx

1분 정도 기다리면 http2.0의 효과를 볼 수 있습니다.

5. 해당 웹사이트가 http2.0

이름을 마우스 오른쪽 버튼으로 클릭하여 프로토콜을 확인하면 http 프로토콜을 확인할 수 있습니다.

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

위 스크린샷의 웹사이트 주소:

http1.1 웹사이트 비교

HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법

위 내용은 HTTP2.0을 지원하도록 nginx를 업그레이드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 亿速云에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
nginx와 apache 사이의 선택 : 필요에 맞는 적합nginx와 apache 사이의 선택 : 필요에 맞는 적합Apr 15, 2025 am 12:04 AM

Nginx와 Apache는 고유 한 장점과 단점이 있으며 다른 시나리오에 적합합니다. 1.NGINX는 높은 동시성 및 낮은 자원 소비 시나리오에 적합합니다. 2. Apache는 복잡한 구성 및 풍부한 모듈이 필요한 시나리오에 적합합니다. 핵심 기능, 성능 차이 및 모범 사례를 비교하면 요구에 가장 적합한 서버 소프트웨어를 선택할 수 있습니다.

nginx를 시작하는 방법nginx를 시작하는 방법Apr 14, 2025 pm 01:06 PM

질문 : nginx를 시작하는 방법? 답변 : nginx 스타트 업 설치 nginx verification nginx is nginx 시작 다른 시작 옵션을 자동으로 시작합니다.

nginx가 시작되었는지 확인하는 방법nginx가 시작되었는지 확인하는 방법Apr 14, 2025 pm 01:03 PM

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

nginx를 닫는 방법nginx를 닫는 방법Apr 14, 2025 pm 01:00 PM

Nginx 서비스를 종료하려면 다음 단계를 따르려면 다음 단계를 결정합니다. Red Hat/Centos (SystemCTL 상태 NGINX) 또는 Debian/Ubuntu (서비스 NGINX 상태) 서비스 중지 : Red Hat/Centos (SystemCTL STOP NGINX) 또는 DEBIAN/UBUNTU (서비스 NGINX STOP) DIA AUTAL STARTUP (옵션) : RED HAT/CENTOS (SystemCTLED) 또는 DEBIAN/UBUNT (SystemCTLED). (Syst

Windows에서 nginx를 구성하는 방법Windows에서 nginx를 구성하는 방법Apr 14, 2025 pm 12:57 PM

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.

nginx403 오류를 해결하는 방법nginx403 오류를 해결하는 방법Apr 14, 2025 pm 12:54 PM

서버는 요청 된 리소스에 액세스 할 수있는 권한이 없으므로 Nginx 403 오류가 발생합니다. 솔루션에는 다음이 포함됩니다. 파일 권한 확인 권한을 확인하십시오. .htaccess 구성을 확인하십시오. nginx 구성을 확인하십시오. Selinux 권한을 구성하십시오. 방화벽 규칙을 확인하십시오. 브라우저 문제, 서버 장애 또는 기타 가능한 오류와 같은 다른 원인을 해결하십시오.

Linux에서 Nginx를 시작하는 방법Linux에서 Nginx를 시작하는 방법Apr 14, 2025 pm 12:51 PM

Linux에서 Nginx를 시작하는 단계 : Nginx가 설치되어 있는지 확인하십시오. systemctl start nginx를 사용하여 nginx 서비스를 시작하십시오. SystemCTL을 사용하여 NGINX를 사용하여 시스템 시작시 NGINX의 자동 시작을 활성화하십시오. SystemCTL 상태 nginx를 사용하여 시작이 성공했는지 확인하십시오. 기본 환영 페이지를 보려면 웹 브라우저의 http : // localhost를 방문하십시오.

nginx가 시작되었는지 확인하는 방법은 무엇입니까?nginx가 시작되었는지 확인하는 방법은 무엇입니까?Apr 14, 2025 pm 12:48 PM

Linux에서는 다음 명령을 사용하여 nginx가 시작되었는지 확인하십시오. SystemCTL 상태 Nginx 판사 명령 출력에 따라 : "active : running"이 표시되면 Nginx가 시작됩니다. "Active : 비활성 (죽음)"이 표시되면 Nginx가 중지됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음