『入る学科間違えた高専生』の日記

プログラミングのコードを書いたりする予定です。あとは日記等。あといつまで高専生やねん

【乗換案内】ApacheからNginxに乗り換えた

はじめに

今回は自宅RaspberryPiのWebサーバをApache2からNginxに乗り換えたお話です.

2016年1月3日現在最新版 Raspbian Jessieが入ってます

乗り換えた理由は,ApacheDjangoRailsアプリケーションデプロイ系の記事が少なく,Nginx経由だったら結構豊富.
更には,実際に計測とかはしていないのですが,Apacheよりアクセス速度が早い.とかですね.

Nginxとは

Nginx........
初めて読んだ時は「んぎんくす」とかなんとかよくわからないまま適当に読んでました.リアル周辺にこの手の話が通じる人が1人もいないので,心の中での会話で.

エンジンエックスと呼びます

N:エン
gin:ジン
x:エックス

なるほど.って言う感じで3ヶ月前に思いました

nginx - Wikipedia

詳しくはWiki読んでください.

今回やったこと

  • Nginxインストール
  • Apache2の停止
  • Nginxの起動
  • php5-fpmなどインストール
  • 設定ファイルイジイジ

Nginxインストール

$ sudo apt-get update
$ sudo apt-get install -y nginx

Apache2の停止

$ sudo /etc/init.d/apache2 stop

ついでに自動起動してたので切ります

$ sudo update-rc.d apache2 remove

Nginxの起動

$ sudo /etc/init.d/nginx start

自動起動設定もしておきます

$ sudo update-rc.d nginx defaults

php5-fpmなどインストール

現段階ではPHPなんて動きませんからとりあえずNginx上でPHPを動かすためにphp5-fpmを入れます.
PHPが入っていない場合は

$ sudo apt-get install -y php5

同時ににモジュールもいれる

$ sudo apt-get install -y php5-fpm php5-cgi php5-cli php5-common php5-mysql

php5-fpm自動起動もしておく

$ sudo update-rc.d php5-fpm defaults

設定ファイルイジイジ

$ sudo vim /etc/nginx/sites-available/example.com
server {
    listen 80;
    servername example.com

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # エラー用(example.com/xxx.html←みたいな感じ)
    error_page 500 /500.html;
    error_page 404 /404.html;
    error_page 403 /403.html;

    location ~ / {
        # お好みに合わせて
        # 日本のみに限定する場合→[http://qiita.com/nnsnodnb/items/654642e94f12d6a0a9a2]
        allow 192.168.0.0/24
        deny all;
    }
    location ~ /\.ht {
        deny all;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
    }
}

qiita.com

もし日本国内のみのアクセスに限定したいならどうぞこちらをご覧ください

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
$ sudo rm /etc/nginx/sites-enabled/default
$ sudo /etc/init.d/nginx restart

最後に

NginxではApacheで使用していた.htaccessが使えないので*.confに書き込みましたが,他にいい方法があれば教えて下さい
また,こんな3000行もあるIPアドレスリストはとりあえず以下ページよりダウンロードさせていただきました.

www.cgis.biz

中身は完全に.htaccess用なのでfromを消し去って,行末に「;」を入れてあげないといけないので,
とりあえずfromは簡単に消せるので消して,あとはプログラムに任せました.

一応公開するとこんな感じ.1行1行に処理を与えるだけの簡単構成.

ここまで設定するのに8時間程度かかってしまいました.おかげで寝てません

たまにはサーバ開発も良いなぁって思いながら今現在に至ります.
というか早くラズパイの購入記事かけ←