こんばんは。
重い腰を上げて、使ってるサーバー(vps)の環境をapacheからnginxにwebサーバーを変更しました😎
最近ではnginxが主流なようなので、新しくwebを始める人はこっちだけ使っていく流れなんですかね。
業務で使うvagrantやdockerにもデフォがnginxになってきたので、設定ファイルにも少しずつ慣れてきました。
nginxとは
wikiによると下記みたいな感じです。
C10K問題(クライアントが1万台アクセスすると、サーバーがパンクしちゃう系の問題)を解決していて、Apacheよりも早いらしいです。実際計測してないので、うーん・・・🤔 ですが体感的に早い気がしています?!
比較されている良い記事がQiitaにありました。
1.47倍ほどnginxのほうが早いらしいです。使わない手はないですね。
nginx(「エンジンエックス」のように発音[3])は、フリーかつオープンソースなWebサーバである。処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されており、HTTP, HTTPS, SMTP, POP3, IMAPのリバースプロキシの機能や、ロードバランサ、HTTPキャッシュなどの機能も持つ。
さようならapache
10年前、専門学校で習ったときからwebサーバーはapacheでした。windowsのiisなんて、ほとんど使うこともなく業務ではapache。xamppというlamp環境を簡単に作れるソフトにもapacheが入っていました。
これからの主流といわれていたlamp(linux, apache, mysql, php)が懐かしい…(遠い目)
移行する
移行手順と設定ファイルの一部を晒しています。
ちょっと昔なので、抜けている所があるかもしれませんが、設定ファイル等参考になれば…!
nginxインストール
yum install nginx
yumコマンドでnginxをインスールします。
nginxの設定(ホームページ、wordpressブログ)
/etc/nginx/conf.d/default.conf
default.confというデフォの設定ファイルがあるので、中身を#で全部コメントアウトしました。
新しく立ち上げるwebサイトの設定ファイルを、サブドメインを含めて作成します。
個人事業ホームの設定ファイルです。(ディレクトリは自分の環境で書き換えています)
server {
server_name codelike.info;
location / {
root /hoge/www/xxx;
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
root /hoge/www/xxx;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /hoge/www/xxx$fastcgi_script_name;
include fastcgi_params;
}
・・・SSL省略・・・
}
次は、このブログの設定ファイルです。
wordpressの設定ファイルは上記のように単純に書くと記事が見れなくなるので注意が必要です。
こんな感じにしました。
server {
server_name codelikes.com;
client_max_body_size 20M;
root /hoge/www/xxx;
index index.php
charset utf-8;
location ~ .(jpg|png|gif|swf|jpeg)$ {
log_not_found off; # 404の時にerror_logに書き込まないようにする設定
access_log off;
expires 3d;
}
location / {
try_files $uri $uri/ @wordpress;
}
location ~ /wp-login.php.* {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /hoge/www/xxx$fastcgi_script_name;
include fastcgi_params;
}
location ~ .php$ {
try_files $uri @wordpress;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME /hoge/www/xxx$fastcgi_script_name;
include fastcgi_params;
}
location @wordpress {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME /hoge/www/xxx/index.php;
include fastcgi_params;
}
・・・SSL省略・・・
}
php-fpmの設定
nginxからphpを使う場合は、php-fpmが必要なため、設定しました。
nginxをまずはインストールします。
yum install --enablerepo=remi php-fpm
エディタで開いて、設定ファイルを弄ります。
sudo vi /etc/php-fpm.d/www.conf
下記を書き込んで(既に行がある場合はコメントアウトなどで)、保存します。
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
httpdを止めて、nginxを動かす。
service httpd stop
service nginx start
service php-fpm start
さよならapache!!
まとめ
こんな感じで、意外と簡単にapacheからnginxの移行ができました。
サーバー周りの設定などはプログラムに比べてまだ、よく理解できてないところが多いような気がしました。
学習していかねば。
👋
コメント