nginx で virtualhost と BASIC認証 

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

返信する
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

nginx で virtualhost と BASIC認証 

投稿記事 by hatahata »

puppy jp571 に パッケージマネージャーでnginxをいれました。
apache と対抗する WWWサーバーです。
起動は 素朴に nginx して実験しました。

まず
addgroup  nogroup
をします。

/etc/nginx/nginx.conf

worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

server {
listen 80;  <ー55580とでもすると、安全度あがるかな? port scan に時間がかかる
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

です。
これでインターネットからみれます。

もちろん 
mkdir -p /usr/share/nginx/html
nano /usr/share/nginx/html/index.htmlをする必要はあります。


ただ apache2 と違って index.htmlだけを見に行きますので、 画像ファイルに直接アクセスすることができません。
そのため

cat .photo.txt
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>i</title>
</head>

として


cat for.bat

touch kari
cp .photo.txt kari
for x in `ls  photo/*.JPG`
do
echo '<body><a href="' `echo $x` '">' `echo $x` '</a> <br><br> ' >> kari
done
echo '</body>' >> kari
echo '</html>' >> kari
mv kari index.html

な簡単なスクリプトで
たくさんの画像をみれるような index.html を発生させます。
   (本当はphoto.htmlとして発生させてindex.htmlのなかでつかいますが、説明上こう書きました)
途中をのせると、  
 <a href="ma/DSC_0162.JPG">ma/DSC_0162.JPG </a> <br>
<br>
<a href="ma/DSC_0163.JPG"> ma/DSC_0163.JPG </a> <br>
<br>
<a href="ma/DSC_0164.JPG"> ma/DSC_0164.JPG </a> <br>
<br>
な感じです。

以上で一応は動きます。
最後に編集したユーザー hatahata [ 15/01/07(水) 10:30 ], 累計 9 回
486HA
記事: 1142
登録日時: 11/03/06(日) 14:31

Re: WWW サーバー nginx で BASIC認証 (できたかな)

投稿記事 by 486HA »

古い記事なので、既にご存知だと思いますが、次のようなものがあります。
PuppyLinux:Nginx
http://puppylinux.org/wikka/Nginx
nginx Webserber (2009-11-02)
http://murga-linux.com/puppy/viewtopic.php?t=48476
Which http server for Puppy (Barry さん)
http://bkhome.org/blog/?viewDetailed=00198
CORE-i7-6700HQ uEFI ram:8GB
Full: Quirky Beaver64-8.7.1(64)
save2dir: Artfulpup-17.11,Dpup-7.5,Xenialpup 7.0.8.1(32)
Slimjet 21.0.8.0(32/64)
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: WWW サーバー nginx で BASIC認証 (できたかな)

投稿記事 by hatahata »

情報ありがとうございました。

nginxで特定ディレクトリをBasic認証から除外する方法
http://qiita.com/minodisk/items/90c6d6cd8f16c34ac10b
は,試してもうまくいかない。
どこに突破口が.
-> 最終記事を見てください、できました。
最後に編集したユーザー hatahata [ 15/01/07(水) 10:32 ], 累計 2 回
hatahata
記事: 212
登録日時: 14/06/11(水) 11:49

Re: WWW サーバー nginx で BASIC認証 

投稿記事 by hatahata »

slackoはだめ、lxpupも nginx のインストールが ダメ(なんたらsoがたらないとでまし)。
でも シノバーさんの precise p571は 成功です。

下記のとおり name-based virtualhost (server block) で かつ basic 認証をかけてます。

member.planex.ddns.vc でbasic 認証をためして見てください。
ID nani  パスワード 2580 です。

name-basedですので 一つのブローバルアドレスで たくさんのサイトを運営できます、 別の顔を見せれます。
また すべて free dynsmic dns serviceを利用し、
mydns.jpは fetchmail で 、 ddnc.vcは dice でアドレスの変化に対応します。

nginxは
cat nginx.bat
mount /dev/sda4 /mnt-nginx/
nginx <ーこれ2回目以降は不要。
で開始します。
つまり データは /mnt-nginx/ つまりハードディスクに置いてます。
そのため USBメモリのp571も容量に心配する必要はなくなります(なんと2Gのusbメモリでも動きます)。

nginxは apacheよりも新しいく、apacheの httpd.confと比べると文法がすっきりしてます。
気に入ってます。

# cat /etc/nginx/nginx.conf
worker_processes 1;

events {
worker_connections 1024;
}

#h>

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#---------------

server {
listen 80;
server_name localhost;
root /mnt-nginx/d1;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/1/.htpasswd;
}


server {
listen 80;
server_name a.mydns.jp;
root /mnt-nginx/d0;
index index.html index.htm;
}

server {
listen 80;
server_name s.sun.ddns.vc;
root /mnt-nginx/d1;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/1/.htpasswd;
}

server {
listen 80;
server_name k.sun.ddns.vc;
root /mnt-nginx/d2;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/2/.htpasswd;
}

server {
listen 80;
server_name member.planex.ddns.vc;
root /mnt-nginx/d11;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/11/.htpasswd;
}

#nita.luna.ddns.vc
server {
listen 80;
server_name n.luna.ddns.vc;
root /mnt-nginx/d12;
index index.html index.htm;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/12/.htpasswd;
}

#h<
}

.htpasswdの作り方は ネットでしらべるとすぐわかります。

basic認証では 平文パスワードが流れます。
これは httpsにするので乗りきれるらしいが.それをtcpdumpなどで監視されることは庶民サイトではない。
(証券会社などだと危ないだろう)

それよりも nginxを chrootにしとかないと 侵入されていじられたり足場にされるおそれがあります。
openbsdではデフォルトでchrootですが、このchroot化が 以下をみても難しい。
https://wiki.archlinux.org/index.php/Ng ... C.E3.83.AB
やって失敗したらぐちゃになります。
バックアップが大事。
https://sudopacman.wordpress.com/2014/1 ... rch-linux/


なお diceですが./diced | nkf -uwして
1番目は setup
2番目はadd
[ オフライン ]
(0)No (1)Yes
番号>1
そしてから dicedを実行させるといいです。

最後に
何回目かのP571起動のあと nginx起動が libGeoIP.so.1がないと叱られ起動できなくなりました。
でも cp   /initrd/mnt/dev_save/usr/lib/libGeoIP.so.1   /usr/lib
これでなおりました。

ノートパソコンの前に座ってないときは openbsd の cuiでnginxを動かしてます。
しかし低スペックではopenbsdではyoutubeの音が途切れるので、puppy でうごかしバックグラウンドでnginxを動かすのを
常としてます。
返信する