Nginx-Unitをとりあえず動かす
- 2017.10.25
- Tech Web構築
- nginx, nginx-unit, PHP
nginx unit
- アプリケーション・サーバー
- 対応言語: PHP,Python,Go (Nodejs, Javaも対応予定)
- サーバごとにfast-cgiとして動作していた環境をunitとして提供される
- アプリケーションの入れ替えやバージョンアップをシームレスに行うことが前提として開発されている
- RESTfulAPI、JSONによる設定の変更・リロードもリアルタイムに反映される
なんとなくfast-cgi等で後ろで動いていたものをnginx unitを入れるとよしなにしてくれて、再起動とかディレクトリ管理とかをリアルタイムに停止しないでできるようになるというイメージ。javaとかgoなんかが簡単に管理できるのがうれしいかも。
インストール
リポジトリの設定
リポジトリのシグネチャファイルインストール
$ wget http://nginx.org/keys/nginx_signing.key
$ sudo apt-key add nginx_signing.key
aptのsourceリストにnginxの場所追加
/etc/apt/sources.list
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx
aptを利用してインストール
$ sudo apt-get update
$ sudo apt-get install unit unit-dev
$ sudo service unitd start
動作確認
$ ps -ef | grep unitd
root 1511 1 0 03:14 ? 00:00:00 unit: main [/usr/sbin/unitd --log /var/log/unitd.log --pid /run/unitd.pi
動いている模様
UNITの設定ファイル
PHPの設定例
php.json
{
"listeners": {
"*:8080": {
"application": "blogs"
}
},
"applications": {
"blogs": {
"type": "php",
"workers": 20,
"root": "/var/www",
"index": "index.php"
}
}
}
こんな感じで設定を読み込ませる
$ sudo curl -X PUT -d @php.json --unix-socket /var/run/control.unit.sock http://localhost/
listenersとアプリケーションは複数設定できるので、
ポートを変えて複数同時に動作させるなどができる模様。
サンプルファイル
/var/www/index.php
<?php
phpinfo();
http://localhost:8300/ にアクセスするとphpinfoの内容が表示される
Nginxとの連携
/etc/nginx/conf.d/default.conf
upstream unit_backend {
server 127.0.0.1:8300;
}
server {
listen 8080;
server_name localhost;
location / {
root /var/www;
index index.php index.html index.htm;
}
location ~ \.php$ {
proxy_pass http://unit_backend;
proxy_set_header Host $host;
}
}
http://localhsot:8080/ にアクセスするとphpinfoが表示
とりあえず動かすところまで、
javaとかバージョン依存のものがこのあたりで動かせるようになるとすごい助かる気がする。
-
前の記事
リハビリがてらCodeigniterで簡易画像管理できるやつ 2017.07.06
-
次の記事
vagrant でubuntuを起動 2017.10.25
コメントを投稿するにはログインしてください。