nginxのレポジトリをStableからMainlineへ変更してアップデートする

Pocket

このblogはCentOS6.7(64bit)を使用しています.

# cat /etc/issue
CentOS release 6.7 (Final)

また,webサーバーには高速でありなおかつリバースプロキシキャッシュが使えるnginxにしています.

nginxはソースからmakeするのではなく公式のレポジトリからインストールしていたのですが,通常のインストールではStable(安定版)がインストールされます.nginxのstable版は現在バージョン1.8.0.

一方,nginxにはMainline版というものがあり,Mainline版のバージョンは現時点でnginx1.9.7になっています.

ということで今回は公式のレポジトリを変更してStableからMainlineに変更する方法をまとめてみました.

Ads

まずはStable版のレポジトリ

まずは一般的なnginxのインストールをおさらいしておきます.

公式サイトにはOS別のインストールの方法が書いてあります.

今回はCentOS6だったので,

# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

でrpmを取得し,

# yum install nginx

すればインストールの完了です.他のバージョンの場合などは公式サイトを御覧ください.

これで/etc/yum.repos.d/nginx.repoが作られました.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

のうち,OSは「centos」,OSRELEASEは「6」にしておきます.なのでCentOS6の場合は,

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

となります.

StableからMainlineへ

Stable版のnginxがインストールされたらMainlineへは簡単に変更できます.実は,/etc/yum.repos.d/nginx.repoが

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/
gpgcheck=0
enabled=1

へとpackagesの後ろに「mainline」が入るだけなんです.

保存したらyumでnginxをアップデート.

# yum --enablerepo=nginx update

で完了.バージョンはどうなったかというと,

# nginx -v
nginx version: nginx/1.9.7

となりました.モジュールを確認すると,

# nginx -V
nginx version: nginx/1.9.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

となっていました.

SPDYからHTTP/2へ

実はnginx1.9.5以降ではSPDYに変わってHTTP/2に対応しています.とはいえ,SPDYの後継がHTTP/2なので基本的には変わっていません.

ただ,nginxのconfを変える必要があります.

私の場合はWordPressのログインにSSLを使用しており,SPDYを有効にしていました./etc/nginx/conf.d/ssl.confはこんな感じ.

server {
    listen 443 ssl spdy;
    server_name   nan-hen.com;

    ssl on;

これを,

server {
    listen 443 ssl http2;
    server_name   nan-hen.com;

    ssl on;

にすればhttp/2が利用可能になります.

とりあえずこれでいいのかな.


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です