在nginx中使用http2(1)

相关文章:

    • VirtualBox+UbuntuにLEMP環境構築

 

    nginScriptを試す(1):nginxをソースコンパイル

实际上,我对HTTP/2并不是很了解。

嗨嗨嗨,三三三●ⅱⅲ,滚来滚去~


暫時不談論NginScript,我打算將來支援可能成為主流的HTTP2。

自从SPDY时代开始了解概要,但作为提供方或使用方,都没有机会接触过,所以对其优缺点并不了解。

只是,暂且也许会有一些好处,所以我觉得还是先试一下确认。

嗨~三三三● ⅱⅲ滚滚♪


请用中文将以下内容改写成句子,只需要提供一种版本:

——————- ↓ 题目开始 ↓——————-

将nginx配置为支持HTTP/2

请按照往常一样从安装开始,并随意跳过阅读。

安装Nginx

准备

sudo apt-get install build-essential # ビルド全般ツール
sudo apt-get install zlib1g-dev      # zlibライブラリ(nginxのビルドで必要)
sudo apt-get install libssl-dev      # SSLライブラリ(nginxのビルドで必要)
sudo apt-get install libpcre3-dev    # PCREライブラリ(nginxのビルドで必要)

简化形式

sudo apt-get install build-essential zlib1g-dev libssl-dev libpcre3-dev

构建

在nginx的1.9.5版本中,宣布支持HTTP/2。

HTTP/2 Now Fully Supported in NGINX Plus


然而,默认情况下不会安装,需要在构建选项中进行附加。

wget http://nginx.org/download/nginx-1.9.5.tar.gz
tar xvfz nginx-1.9.5.tar.gz
cd nginx-1.9.5
./configure --pid-path=/run/nginx.pid --user=www-data --group=www-data --with-http_ssl_module --with-http_v2_module 
make
sudo make install
cd ..

确认启动

sudo /usr/local/nginx/sbin/nginx # 起動
sudo /usr/local/nginx/sbin/nginx -s quit # 終了

SSL 的设置

由于HTTP/2需要SSL,因此需要安装证书。

生成证书

openssl req -new -nodes -keyout cert.key -out cert.csr -subj "/C=JP/ST=/L=/O=/CN=www.ext.com"
openssl x509 -in cert.csr -out cert.pem -req -signkey cert.key -days 3650
sudo mv cert.* /usr/local/nginx/conf/

调整配置文件

取消SSL部分的注释。

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      cert.pem;
        ssl_certificate_key  cert.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5;   # ←ちょっと変えてます
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }

将设置应用

sudo /usr/local/nginx/sbin/nginx -t # 設定変更確認
sudo /usr/local/nginx/sbin/nginx -s quit # 終了
sudo /usr/local/nginx/sbin/nginx # 起動

启用HTTP/2

由于系统成功启动,现在可以调整配置以启用HTTP/2。

    # HTTPS server
    #
    server {
        listen       443 ssl http2;
        ・・・
    }

将设置应用

sudo /usr/local/nginx/sbin/nginx -t # 設定変更確認
sudo /usr/local/nginx/sbin/nginx -s quit # 終了
sudo /usr/local/nginx/sbin/nginx # 起動

确认HTTP2

通过访问日志进行确认

当使用Chrome和IE访问相同的URL时,可以发现所记录的HTTP协议不同。

192.168.56.1 - - [01/Oct/2015:12:42:53 +0900] "GET /index.html HTTP/1.1" ← IE
192.168.56.1 - - [01/Oct/2015:12:40:53 +0900] "GET /index.html HTTP/2.0" ← Chrome

生动日志

# IEからのアクセス
192.168.56.1 - - [01/Oct/2015:12:42:53 +0900] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
# Chromeからのアクセス
192.168.56.1 - - [01/Oct/2015:12:40:53 +0900] "GET /index.html HTTP/2.0" 200 755 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 Kinza/2.6.0"

使用 Chrome 浏览器的插件进行确认。

用Chrome的扩展程序HTTP/2和SPDY指示器来确认兼容性。
如果右上角的闪电符号变色,表示支持。

nginx06.PNG

(⊙ω⊙)你好~ 三三三● ⅱⅲ 咕噜咕噜♪


请你用中文重新表述以下内容,只需要一个选项:
——————- ↓内容补充在此↓ ——————-

自動開啟

在系统启动时,将Nginx也注册到systemd中并启动。
参考:https://www.nginx.com/resources/wiki/start/topics/examples/systemd/

服务文件的注册

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

自动启动被启用。

$ sudo systemctl daemon-reload    # serviceファイル再読み込み
$ sudo systemctl enable nginx     # 自動起動登録

服務指令

$ sudo service nginx start        # サービス手動起動
$ sudo service nginx stop         # サービス手動停止
$ sudo service nginx restart      # サービス再起動
广告
将在 10 秒后关闭
bannerAds