webサーバソフト nginx(えんじんえっくす)の設定方法のメモ
1.インストール
$ sudo apt-get
install nginx
|
2. バーチャルホストの設定
サーバーのアドレスがhttp://www.hogehoge.co.jp だとするとここにアクセスすると
デフォルトでは/var/www/html/index.htmlのページが表示される。
これをバーチャルホストを設定してuser名takoの/home/tako/public_html
/index.htmlが表示されるように設定するには
/etc/nginx/conf.d/の下に拡張子.confで記述する。
例/etc/nginx/conf.d/tako.conf
server {
listen
80;
listen
[::]:80;
server_name www.hogehoge.co.jp;
root
/home/tako/public_html;
index
index.html;
location
/ {
try_files $uri $uri/ =404;
}
}
|
上の設定ファイルをチェックする方法
$ sudo
/etc/init.d/nginx testconfig
|
上の設定ファイルで
server_name に記述されたアドレスにアクセスすると
rootで記述された /home/tako/public_html/下のindex.htmlが表示される。
もしLan内でipアドレス(192.168.1.204)でアクセスで直接アクセスされるとき反応できるようにするには
次のようなファイルを作る
/etc/nginx/conf.d/192.168.1.204.conf
server {
listen
80;
listen
[::]:80;
server_name 192.168.1.204;
root
/home/tako/public_html;
index
index.html;
location
/ {
try_files $uri $uri/ =404;
}
}
|
3. basic認証の設定
平文でパスワード認証をもとめるページを追加する場合、パスワードを設定する。
$ cd /home/tako
$ sudo htpasswd -c .htpasswd tako
$ sudo chmod 600 .htpasswd
|
これでユーザーtakoのパスワードファイルが/home/tako/.htpasswdに作成され
る。
もし 例えば/home/tako/public_html/webcamera
下のアクセスをベーシック認証する場合、/etc/nginx/conf.d下の
設定ファイルに次のように記述を追加する。
/etc/nginx/conf.d/tako.confに赤い部分を追加
server {
listen 80;
listen [::]:80;
server_name www.hogehoge.co.jp;
root /home/karappi/public_html;
index index.html;
location / {
try_files $uri
$uri/ =404;
}
#basic認証のページ
location
/webcamera/ {
auth_basic "Restricted";
auth_basic_user_file
/home/tako/.htpasswd;
}
}
|
4. PerlのCGIを動かす
(1)FastCGIをインストールする。
# apt-get
install fcgiwrap
|
(2)/etc/nginx/conf.d/tako.confに赤い部分を追加
server {
listen 80;
listen [::]:80;
server_name www.hogehoge.co.jp;
root /home/karappi/public_html;
index index.html;
location / {
try_files $uri
$uri/ =404;
}
#basic認証のページ+追加でCGIも動くようにする
location /webcamera/ {
auth_basic "Restricted";
auth_basic_user_file
/home/tako/.htpasswd;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include fastcgi_params;
}
}
|
もしcgiがログファイル等を書き出すときは、ログファイルのオーナーとグループをwww-dataにしてパーミションを
chmod で644にしておく
例
# chown
www-data counter.log
# chgrp www-data counter.log
# chmod 644 counter.log
|
5 アンインストール
Debian jessie でnginxをアンインストールしてもnginxは消えない。次のように手動で消す。
# apt-get
remove --purge nginx
# rm -i /etc/init.d/nginx
# rm -fr /usr/share/nginx
|