2014年12月26日金曜日

nginx で  vitualhost かつ BASIC認証

結構 openbsdのnginxはデリケートだ。
丁寧に扱わないといけない。


archlinxのデフォルトのnginxは chrootされてなくあぶない。
かといって それをきちんとchrootするのはとても大変である。
あやうい wwwサーバーではなんともならない。

また apacheは 古くなったとのこと。
だから nginxに移行した。


/etc/nginx/nginx.conf は結局以下。



--------------------

worker_processes  1;
worker_rlimit_nofile 1024;

events {
    worker_connections  800;
}

#h>
http {

    include       mime.types;
    default_type  application/octet-stream;
    index         index.html index.htm;
    keepalive_timeout  65;
    server_tokens off;


server {
        listen       80;
        listen       [::]:80;
        server_name  localhost;    #<-for test
        root         /var/www/d1;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd; #所有者はwwwにすること。
                      
          }


#0 ほら、basic 認証してるでしょう
    server {
        listen       80;
        listen       [::]:80;
        server_name  a.mydns.jp;
        root         /var/www/d0;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd;
          }

#1
server {
        listen       80;
        listen       [::]:80;
        server_name  s.sun.ddns.vc;
        root         /var/www/d1;
auth_basic "Restricted";
auth_basic_user_file /var/www/1/.htpasswd;
          }

#2
server {
        listen       80;
        listen       [::]:80;
        server_name  k.sun.ddns.vc;
        root         /var/www/d2;
auth_basic "Restricted";
auth_basic_user_file /var/www/2/.htpasswd;
          }

#11
server {
        listen       80;
        listen       [::]:80;
        server_name  member.planex.ddns.vc;
        root         /var/www/d11;
auth_basic "Restricted";
auth_basic_user_file /var/www/11/.htpasswd;
          }

#12
server {
        listen       80;
        listen       [::]:80;
        server_name  n.luna.ddns.vc;
        root         /var/www/d12;
auth_basic "Restricted";
auth_basic_user_file /var/www/12/.htpasswd;
          }
#h>
    } 
 
 
 
自分は openbsdを USBでうごかしている。
それで 4Gしかとれない。
だから データは HDDにいれる必要がある。
しかも LINUXからもアクセスできるように ext2にしている。
 

記憶では
mv  /var/www  /var/www1
mkdir  /var/www
mount_ext2fs /dev/sd0a /var/www
cp -ar /var/www1/*   /var/www 
したと思う。
とにかく USBの /var/wwwを HDDに移した。



 # cat /etc/rc.local 
umount /var/www 

mount_ext2fs /dev/sd0a /var/www # <-----ext2fs

 if [ -x /usr/local/sbin/nginx ]; then echo ' ----- Starting nginx ----- '; /etc/rc.d/nginx -f start fi 



 because 
cat /etc/rc.d/nginx 
#!/bin/sh 
# # $OpenBSD: nginx,v 1.1 2012/02/19 11:34:36 robert Exp $ daemon="/usr/local/sbin/nginx" #<------   いろいろつついているうちに 
                                                                /usr/sbin/nginxが変化した。







 # 2>&1 nginx -V | tr -- - '\n' | grep _module
http_gzip_static_module
http_ssl_module
http_stub_status_module
mail_pop3_module
mail_imap_module
mail_smtp_module



archでは
 2>&1 nginx -V | tr -- - '\n' | grep _module is next
--------------------
imap_ssl_module
http_dav_module
http_gunzip_module
http_gzip_static_module
http_realip_module
http_spdy_module
http_ssl_module
http_stub_status_module
http_addition_module
http_degradation_module
http_flv_module
http_mp4_module
http_secure_link_module
http_sub_module

になってる。




後は
http://www.bsdnow.tv/tutorials/nginx
とか
http://apis.jpn.ph/fswiki/wiki.cgi?page=OpenBSD%2Fhttpd#p13

はありますが、
HTTPSは、メッセージを平文のままで送受信する標準のHTTPと異なり
WebブラウザとWebサーバの間の通信を暗号化して、盗聴改竄を防いでいる。

実現は難しい。

0 件のコメント:

コメントを投稿