ホームページ制作,維持・保守
サーバーシステム構築・管理
ネットワーク構築・管理
IT環境サポート
インフラ構築サポート
ITアウトソーシング
インフラ基礎講座

リナックスでウェブサービスのためnginxインストール

森之宮 0 285 0

リナックスをホームページ運営サーバーとして活用するためには、まずウェブサーバ設置が必要になります。 ウェブサーバはhttpウェブサービス(ホームページ)を運営するためには必ず必要なサーバプログラムです。 


ウェブサーバにはいろいろな種類があります。 その中で一番多く使う代表的なウェブサーバではapache(アパッチ)とnginx(エンジンエックス)があります。 過去(現在も多く使われておりますが...)にはapacheをたくさん使用しました。 (90%以上、その占有率がすごかったんです。)、今も多くのウェブホスティングではすべてapacheを使用しています。 しかし、最近はnginxに変わる傾向です。 大型ポータルサイトもnginxに乗り換えています。 


その理由としてはnginxがapacheより設定も簡単で、また性能面や速度の面でもっと優れているためです。 apacheは機能は多くありますが、... 確かにスピードの面から落ちます。 (nginxがapacheより50倍も早いという噂もあります。)本来プログラムとは機能が多いほど、その分、速度が下がることになっています。(当たり前の話かも(笑)) 一方、nginxは必須機能だけを含めてオプションを最小化しました。 そのおかげで、速いスピードを得ることになったものです。 しかし、nginxはapacheのように多くの機能を提供しておらず、特別な機能が必要な場合不便だらけかも知りません。


普通は一般的なウェブサーバを構築するのでapacheのような多くの機能が必要とする訳ではありません。 (また、あまりよく使われてもないし...それで、nginxを設置し、最速のウェブサーバを構築してみます。



1.インストール


nginxはyumを介して設置することになるはずです。 あまりにも有名なnginxなので基本リポジトリにもnginxがあります。 そのまま設置すればいいです。 しかし、ここではnginx専用リポジトリを追加して設置してみます。 nginxで運営するリポジトリを追加すれば最新バージョンのnginxを設置することができます。


*nginxリポジトリ追加


#vi/etc/yum.repos.d/nginx.repo


新たに生成したnginxリポジトリに次の内容を入れば良いです。


[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

 

enabled=1


@参照:http://wiki.nginx.org/Install


安定バージョン:baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

最新バージョン:baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/


*nginx設置


#yum install nginx


*nginxサービス活性化

再起動の時nginxが自動実行されるようにサービスを活性化します。


#systemctl enable nginx


@のサービススタートはnginx設定後するようにします。



2.設定


*80ポートの許容

ファイアウォールで80番ポートが開放されないと、ウェブサービスは不可能です。 


#firewall-cmd--permanent--zone=public--add-service=http

#firewall-cmd--permanent--zone=public--add-service=https

#firewall-cmd--reload


@上記のコマンドはfirewallを使用する場合にのみ該当し、iptablesを使用する場合には他のコマンドを使用します。

@自宅で運営する個人サーバの場合、インターネット業者から80番ポートを使用しないように遮断状態の場合もあります。 そんな場合は、他のポートを使用すればいいです。



*/etc/nginx/conf.d設定

もともとnginxの設定ファイルは、/etc/nginx/nginx.confです。 しかし、yumアップデートの時、設定ファイルが上書きの恐れがあるので設定ファイルを新たに生成した後に使用する方法でやります。


メイン設定ファイル(/etc/nginx/nginx.conf)を見ると、include/etc/nginx/conf.d/*.conf;部分があります。 これは/etc/nginx/conf.dディレクトリにあるすべての設定ファイルを読み込むラインです。 つまり、conf.dディレクトリで新しい設定ファイルを生成すると、それも読み込むという意味です。 


ディレクトリには基本的にdefault.confとexample_ssl.confというファイルがインストール時に追加されているはずです。

default.conf:最もメインとなるファイルです。 サーバーipを入力した時に出るページの設定ファイルです。

example_ssl.conf:SSL適用時にどのように設定するか見せてくれる単純な例題ファイルです。 また、全てコメント(#)処理されてあるので効力が発生しないファイルです。 

このファイルを参照して設定ファイルを新たに生成します。


それではconf.dディレクトリにmain.confというファイルを生成してコードを下記のように入力してみます。


#vi/etc/nginx/conf.d/main.conf


/etc/nginx/conf.d/main.conf 


server{

#ポート番号。一般的に80番ポートになっています。

listen       80;

     

#連結するドメイン名。ドメインは、サーバipに連結されていなければなりません。

server_name  www.conory.com;

     

#ウェブルートディレクトリを指定。ホストに接続時/home/www/にあるファイルがメインになります。

root/home/www;

 

 

#INDEXファイルを指定。ホストに接続時/home/www/index.php、index.html、index.htmこのようなファイルがあれば、先に読み込みます。

index index.php  index.html index.htm;

 

 

#エラーページを作成することができます。 なければ、下記部分は除去してください。

error_page 401/error_401.html;

error_page 403/error_403.html;

error_page 404/error_404.html;

error_page 500/error_500.html;

error_page 502/error_502.html;

error_page 503/error_503.html;

     

 

 

#php連動部分です。 phpなしで運営するには、下記部分は除去してください。 

location~\。php${

fastcgi_pass    127.0.0.1:9000;

fastcgi_index   index.php;

fastcgi_param   SCRIPT_FILENAME$document_root$fastcgi_script_name;

fastcgi_param   PHP_ADMIN_VALUE"open_basedir=$document_root:/tmp/";

include         fastcgi_params;

try_files$uri=404;

limit_req       zone=limit burst=5 nodelay;

}

}


@ウェブポートを80番にする理由は、ポート番号をあえて付けなくても構わないポートであるからです。 例えば、world-idc.netも80ポートです。 しかし、world-idc.net:80のように80ポート番号を付けなくてもアクセス可能です。 80番と443番(ssl)だけがそのようになっています。 他のポートは番号をつけなければなりません。



*/etc/nginx/conf.d/default.confファイル

default.confファイルは上記にも言ったとおりで最も基本的なファイルです。 サーバーipが入力された時に出るページの設定ファイルです。 しかし、設置時には追加されるファイルなので直接修正すればアップデート時、上書き恐れがあります。 それではこの基本ファイルを設定することはできないでしょうか。


結論から言いますと可能です。 

設定ファイルはファイル名のアルファベット順に読み込まれるのでdefault.confよりもっと高いアルファベットの名前に設定ファイルを生成すればいいです。 そうなれば、default.confより優先順位が高いファイルになります。


例えば、default.confをコピーした後、その名前をa.confとすればいいです。 これでdefault.confの代わりにa.confを設定すればいいです。


#cp/etc/nginx/conf.d/default.conf/etc/nginx/conf.d/a.conf


@参考:cpはファイルコピーコマンドです。



*ウェブルートディレクトリにhtmlファイルを取り込む

設定ファイルで指定したウェブルートディレクトリに表示するindex.htmlファイルを入れて置けばば良いです。 例えば、設定ファイルで/home/wwwディレクトリをウェブルートで指定したなら、/home/www/index.htmlファイルがインデックスファイルになります。



3.サービススタート

設定を終えたらとサービスを開始します。


#systemctl start nginx


これでサーバip、連結されたドメインでウェブアクセスが可能になりました。



4.設定反映

後でnginxの設定変更する場合、サービスの再起動や再ロードすれば設定が反映されます。

しかし、再起動はサービスが切れるので再ロードを推奨します。


#systemctl reload nginx



0 コメント