skillup

技術ブログ

サーバー・ネットワーク

nginxでの設定について

投稿日:

何回かやったnginxの設定について。

特にサブディレクトリなどに設定したいなどの時に悩みますね・・・

locationディレクティブ

マッチするようなURLパターンの時に使います。

上記の場合たとえば、

http://example.com/images/log.pngというURLがアクセスされた場合、/var/www/img/images/logo.pngにアクセスされることになります。

locationディレクティブには各種、正規表現なども使えます。

またディレクティブを複数書いた場合、

記述が複雑なケースが優先されます(location / よりもlocation /imageの方が優先されます)

また正規表現を書いたケースが優先されます

ちなみにaliasを使い、下記のように書くと

http://example.com/images/log.pngというURLがアクセスされた場合、/var/www/img/logo.pngにアクセスされることになります。

rootの場合、root+locationになりますが、aliasに指定した場合、ディレクトリをそのまま読み込んでくるという違います。

try_filesディレクティブ

パラメーターに指定したファイルパスを前から順番にチェックし、ファイルがあればそのファイルの内容をレスポンスとして応答します。どのファイルも指定していなかった場合、最後に指定した転送先URLに内部リダイレクトをします。

上記の場合、まず最初に$uri、その後に、 $uri/ 最後に、sample/index.phpを見に行くということになります。

fastcgiがらみのディレクティブ

FASTCGIに渡すパラメーターです。

fastcgi_pass サーバへのリクエストのプロキシです。PHPを使っている場合はphp-fpmのパスになることが一般的です。

fastcgi_index $fastcgi_script_nameの値で、スラッシュで終わるURIの後に追加されるファイル名を設定します。

SCRIPT_FILENAME  サーバー側に送られる環境変数になります。ほとんどの場合で、スクリプトのファイルパスになります。

include fastcgi_params 設定ファイルを読み込む部分になります。

参考リンク

nginx $document_root$fastcgi_script_name と $request_filename の違い

https://mogile.web.fc2.com/nginx_wiki/start/topics/examples/phpfcgi/

参考ポートフォリオ

https://github.com/umanari145/php-nginx

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

vagrantでサーバーの状態を保存(snapshot)

上司がAnsible(構成管理ツール)のサンプルをくれたのですが、試そうにもまっさらなサーバーを用意しないといけません。 サーバー環境を新規に契約するのは面倒なのでvagrantで当然考えています。 …

no image

wordpressでのnginx設定

ここ1年、apacheではなく、nginxでサービスを作ることが多いため、設定にだいぶ慣れてきました。 今回はwordpressの設定です。 バーチャルホストでsample.comとアクセスをするとw …

no image

dockerコンテナ間での連携(PHP+MySQL)

dockerでのコンテナ間の連携について 以前、dockerではCentOSのイメージからコンテナを作成し、その中にphp,apache,mysqlをインストールしてましたが、dockerの使い方とし …

no image

データのシリアライズ

おととしにJavaをやったときにでてきましたがSessionに情報を格納するときにでてきたシリアライズについて。 セッションはステートフルな状態を実現するための便利なデータの保存方法ですが、値をオブジ …