nginx HTTP 2 지원 사용 하기
nginx启用HTTP2特性
查看当前nginx的编译选项
#./nginx -V nginx version: nginx/1.9.15 built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) built with OpenSSL 1.0.2g 1 Mar 2016 TLS SNI support enabled configure arguments: --prefix=/home/jackie/software/nginx --with-openssl=/home/jackie/Downloads/nginx/openssl-1.0.2g --with-pcre=/home/jackie/Downloads/nginx/pcre-8.38 --with-zlib=/home/jackie/Downloads/nginx/zlib-1.2.8 --with-http_ssl_module --with-threads --with-debug
http2 지원 사용 하기
configure
옵션 에 추가 --with-http_v2_module
하고, HTTP 2 는 SSL 지원 이 필요 하기 때문에 --with-http_ssl_module
옵션 이 부족 하면 추가 --with-http_ssl_module
해 야 합 니 다.다음 과 같다. ./configure --prefix=/home/jackie/software/nginx \
--with-openssl=/home/jackie/Downloads/nginx/openssl-1.0.2g \
--with-pcre=/home/jackie/Downloads/nginx/pcre-8.38 \
--with-zlib=/home/jackie/Downloads/nginx/zlib-1.2.8 \
--with-http_ssl_module \
--with-threads \
--with-debug \
--with-http_v2_module
make & make install
server {
listen 8443 ssl http2 default_server; # http2 default_server
server_name 192.168.0.107;
...
}
#./nginx -t
nginx: the configuration file /home/jackie/software/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/jackie/software/nginx/conf/nginx.conf test is successful
#./nginx
방법 은 56.0.2924.87 과 같은 높 은 버 전의 크롬 을 사용 하면 다음 과 같은 절차 에 따라 조작 된다.
chrome://net-internals/#http2
입력 하고 HTTP/2 sessions
아래 표를 검사 합 니 다.방법 2. curl 명령 을 사용 합 니 다. HTTP / 2 with curl 을 참고 하여 다음 명령 을 실행 하고 사이트 에서 돌아 오 는 프로 토 콜 이 HTTP 인지 확인 합 니 다.
curl --http2 -I 192.168.0.107:8443
상기 명령 을 수행 할 때 다음 과 같은 오류 가 발생 하면 시스템 에 현재 설 치 된 curl 이 HTTP 2 프로 토 콜 을 지원 하지 않 는 다 는 것 을 의미한다.curl https://192.168.0.107:8443/ --http2
curl: (1) Unsupported protocol
다음 명령 을 실행 할 수 있 습 니 다. 시스템 에 현재 설 치 된 curl 이 지원 하 는 특성 목록 을 확인 하고 HTTP 2 가 포함 되 어 있 는 지 확인 할 수 있 습 니 다.curl -V
curl 7.47.0 (i686-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
상기 출력 정 보 를 통 해 알 수 있 듯 이 현재 설 치 된 curl 은 HTTP 2 를 지원 하지 않 습 니 다.이 때 curl 명령 HTTP 2 를 사용 하여 curl 을 재 컴 파일 하고 HTTP 2 지원 을 추가 하 는 방법 을 참고 할 수 있 습 니 다.방법 3 크롬 플러그 인 HTTP / 2 and SPDY indicator 를 설치 하고 설치 가 끝 난 후 HTTP 2 를 사용 하 는 사이트 에 접근 합 니 다. 주소 표시 줄 에 파란색 번개 가 치면 사이트 에서 HTTP 2 를 사용 하고 있 음 을 설명 합 니 다.그러나 재 키 는 벽 안에 있어 설치 가 항상 실패 하기 때문에 이 방법의 유효성 을 검증 하지 못 했다.
완전한 프로필 은 다음 과 같 습 니 다. 완전한 프로필 입 니 다. HTTP 2 특성 과 관련 이 없 는 내용 을 삭 제 했 습 니 다.
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
charset utf-8;
server {
listen 8080;
server_name 192.168.0.107;
if ($scheme ~ http) {
return https://$server_name:8443$request_uri;
}
}
server {
listen 8443 ssl http2 default_server;
server_name 192.168.0.107;
ssl_certificate /home/jackie/software/nginx_conf/server.crt;
ssl_certificate_key /home/jackie/software/nginx_conf/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" always;
add_header X-Frame-Options SAMEORIGIN always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options nosniff;
location ~ / {
index index.jsp;
proxy_pass http://127.0.0.1:18080;
proxy_set_header referer '';
include proxy.conf;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}
}
참고 자료
nginx 에서 http2 자 료 를 사용 합 니 다.
기타
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.