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

vagrant 複数ホストを起動

ansbileを使おうと思ったんですが、ansibleはホスト1→ホスト2という構成になっているため、2台のホストがないと使えません。 MACであればローカル環境からいけますし、Windowsでもcy …

no image

supervisorによるデーモン化

えー実務で任意のプログラムをデーモン化させて処理をするという実装があったのでメモ。 Contents1 デーモンとは?2 Supervisor2.1 インストール2.2 実行プログラム2.3 サービス …

no image

ロードアベレージ監視シェルスクリプト

ロードアベレージの監視シェルスクリプトについて Contents1 使用コマンド1.1 uptime1.2 /proc/cpuinfo1.3 bc2 ソース3 他参考リンク 使用コマンド uptime …

no image

apacheでのバーチャルホストの設定

このブログを旧サイトから移管し、同一ホストで別々のドメインを運用することになったので、バーチャルホストの設定を行いました。 Contents1 設定方法1.1 http.conf1.2 実際のバーチャ …

no image

herokuでのLet’s Encrypt設定

herokuで運用しているアプリでhttps設定(Let’s Encrypt)をしたいという要望があり、調査、設定をすることに。 当然herokuでなくても大丈夫です。 過去に行ったhtt …