Counterwallet nginxをインストールする
はじめに
setup_federated_node.pyを使ってCounterpartyのコンポーネントを一括でインストールする場合はnginxも同時にインストールされますが、CounterpartydやCounterblockdを個別にインストールした場合は、別途nginxをインストールする必要があります。今回はそのことについて書きます。
目次
- nginxとは
- nginxインストールスクリプト
- 設定ファイル修正
- 画面確認
nginxとは
nginxは軽量で高速なオープンソースのWebサーバです。イベント駆動アーキテクチャ(リクエストを単一あるいはごく少数のプロセスだけで処理)により大量のリクエストを同時に処理できるスケーラビリティを備えています。
WEB+DB PRESS Vol72で詳しく説明されています。
- 作者: 近藤宇智朗,生井智司,Dr.Kein,tokuhirom,森田創,中島聡,堤智代,A-Listers,はまちや2,竹原,川添貴生,久保達彦,道井俊介,飯田祐基,中村知成,規世やよい,後藤秀宣,天野祐介,奥野幹也,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2012/12/22
- メディア: 大型本
- 購入: 11人 クリック: 94回
- この商品を含むブログ (10件) を見る
nginxインストールスクリプト
setup_federated_node.pyからnginxインストールに必要な部分だけを取り出して、install_nginx.pyを作成しました。
#! /usr/bin/env python3 import os from setup_util import * def do_nginx_setup(run_as_user, base_path, dist_path, enable=True): if not enable: runcmd("apt-get -y remove nginx-openresty", abort_on_failure=False) return #Build and install nginx (openresty) on Ubuntu #Most of these build commands from http://brian.akins.org/blog/2013/03/19/building-openresty-on-ubuntu/ OPENRESTY_VER = "1.7.7.1" #uninstall nginx if already present runcmd("apt-get -y remove nginx") #install deps runcmd("apt-get -y install make ruby1.9.1 ruby1.9.1-dev git-core libpcre3-dev libxslt1-dev libgd2-xpm-dev libgeoip-dev unzip zip build-essential libssl-dev ssl-cert") runcmd("gem install fpm") #grab openresty and compile runcmd("rm -rf /tmp/openresty /tmp/ngx_openresty-* /tmp/nginx-openresty.tar.gz /tmp/nginx-openresty*.deb") runcmd('''wget -O /tmp/nginx-openresty.tar.gz http://openresty.org/download/ngx_openresty-%s.tar.gz''' % OPENRESTY_VER) runcmd("tar -C /tmp -zxvf /tmp/nginx-openresty.tar.gz") runcmd('''cd /tmp/ngx_openresty-%s && ./configure \ --with-luajit \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-log-path=/var/log/nginx/access.log \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-scgi-temp-path=/var/lib/nginx/scgi \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ --lock-path=/var/lock/nginx.lock \ --pid-path=/var/run/nginx.pid \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_realip_module \ --with-http_ssl_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-ipv6 \ --with-sha1=/usr/include/openssl \ --with-md5=/usr/include/openssl \ --with-http_stub_status_module \ --with-http_secure_link_module \ --with-http_sub_module && make''' % OPENRESTY_VER) #set up the build environment runcmd('''cd /tmp/ngx_openresty-%s && make install DESTDIR=/tmp/openresty \ && mkdir -p /tmp/openresty/var/lib/nginx \ && install -m 0755 -D %s/linux/runit/nginx/run /tmp/openresty/etc/sv/nginx/run \ && install -m 0755 -D %s/linux/nginx/nginx.conf /tmp/openresty/etc/nginx/nginx.conf \ && install -m 0755 -D %s/linux/nginx/counterblock.conf /tmp/openresty/etc/nginx/sites-enabled/counterblock.conf \ && install -m 0755 -D %s/linux/nginx/counterblock_api.inc /tmp/openresty/etc/nginx/sites-enabled/counterblock_api.inc \ && install -m 0755 -D %s/linux/nginx/counterblock_api_cache.inc /tmp/openresty/etc/nginx/sites-enabled/counterblock_api_cache.inc \ && install -m 0755 -D %s/linux/nginx/counterblock_socketio.inc /tmp/openresty/etc/nginx/sites-enabled/counterblock_socketio.inc \ && install -m 0755 -D %s/linux/logrotate/nginx /tmp/openresty/etc/logrotate.d/nginx''' % ( OPENRESTY_VER, dist_path, dist_path, dist_path, dist_path, dist_path, dist_path, dist_path)) #package it up using fpm runcmd('''cd /tmp && fpm -s dir -t deb -n nginx-openresty -v %s --iteration 1 -C /tmp/openresty \ --description "openresty %s" \ --conflicts nginx \ --conflicts nginx-common \ -d libxslt1.1 \ -d libgeoip1 \ -d geoip-database \ -d libpcre3 \ --config-files /etc/nginx/nginx.conf \ --config-files /etc/nginx/sites-enabled/counterblock.conf \ --config-files /etc/nginx/fastcgi.conf.default \ --config-files /etc/nginx/win-utf \ --config-files /etc/nginx/fastcgi_params \ --config-files /etc/nginx/nginx.conf \ --config-files /etc/nginx/koi-win \ --config-files /etc/nginx/nginx.conf.default \ --config-files /etc/nginx/mime.types.default \ --config-files /etc/nginx/koi-utf \ --config-files /etc/nginx/uwsgi_params \ --config-files /etc/nginx/uwsgi_params.default \ --config-files /etc/nginx/fastcgi_params.default \ --config-files /etc/nginx/mime.types \ --config-files /etc/nginx/scgi_params.default \ --config-files /etc/nginx/scgi_params \ --config-files /etc/nginx/fastcgi.conf \ etc usr var''' % (OPENRESTY_VER, OPENRESTY_VER)) #now install the .deb package that was created (along with its deps) runcmd("apt-get -y install libxslt1.1 libgeoip1 geoip-database libpcre3") runcmd("dpkg -i /tmp/nginx-openresty_%s-1_amd64.deb" % OPENRESTY_VER) #remove any .dpkg-old or .dpkg-dist files that might have been installed out of the nginx config dir runcmd("rm -f /etc/nginx/sites-enabled/*.dpkg-old /etc/nginx/sites-enabled/*.dpkg-dist") #clean up after ourselves runcmd("rm -rf /tmp/openresty /tmp/ngx_openresty-* /tmp/nginx-openresty.tar.gz /tmp/nginx-openresty*.deb") #set up init runcmd("ln -sf /etc/sv/nginx /etc/service/") def main(): do_nginx_setup("xcp", "/home/xcp/counterpartyd_build", "/home/xcp/counterpartyd_build/dist", True) if __name__ == "__main__": main()
/home/xcp/counterpartyd_buildに配置して実行してください。(setup_util.pyのメソッドを呼び出すため)
$ cd /home/xcp/counterpartyd_build $ sudo python3 install_nginx.py
設定ファイル修正
nginxの設定ファイルは/etc/nginx/nginx.confです。このファイルに設定を追加します。
1. http {}内に以下を追記
server { listen *:443; server_name XXX.sakura.ne.jp; # ここにサーバー名を設定してください location / { root /home/xcp/nginxroot/; index index.html; } }
2. /home/xcp/nginxroot/index.htmlファイルを作成
- 設定ファイルを再読み込み
$ sudo nginx -s reload
画面確認
https://XXX.sakura.ne.jp にアクセスして画面が表示されたら設定が正しくできています。
まとめ
次回はSSL証明書の設定をやります。