web-dev-qa-db-ja.com

.htaccess /書き換えルールのnginxサポート? Apacheとの違いは?

私はかなり長い間Apache httpサーバーで作業しており、最後に他の動的コンテンツマシンと共に静的コンテンツサーバーに移行しました。

Nginxは ".htaccess"ファイルやmod_rewriteのようなものをサポートしていますか?

私は構文に非常に慣れているので、(構文)の違いは何か、Apacheの構成からnginxに移行する際の学習曲線はどのようなものかと思っていました。

16

nginx rewrite構文は、mod_rewriteの対応する構文よりもはるかに簡潔です。

mod_rewriteルール:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]

Nginxになる:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;

しかし、.htaccessのサポートはありません...

編集:nginxで http://example.com/~username/ urlsをサポートする別の例:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}
15
rkthkr

nginxは書き換え機能を提供します。確認 NginxHttpRewriteModule

.htaccessで何をしたいですか? NginxHttpAuthBasicModule を使用してnginxを基本認証用にセットアップできますが、AFAIK構成ディレクティブはnginx.confにのみ保存できます

5
zarkdav

Nginxには同等のmod_rewriteがあり、ドキュメントは here にあります。私自身はnginxを使用していませんが、ドキュメントは構成がまったく異なるように見えますが、それが何をしているかを理解するのはそれほど難しくないはずです。 wikiにはたくさんの例があるようです。

Apacheのようにディレクトリごとに構成ファイルを作成できるかどうかはわかりません。人々がApacheを使用することからそれを期待するようになったので、それができても私を驚かせないでしょう。

4
David Pashley

NGINXは、 'include'ディレクティブを介して多くのファイルに設定を持つことをサポートしています。基本的に、それはサブ構成をロードし、それを配置します。ジョーカーキャラクターにも対応しているため、多くのショットを一度にロードするのは簡単です。

(私の意見では)唯一の制限は、構成が変更されたときにリロードする必要があることです。したがって、構成の一部を持つすべてのユーザーは、nginx構成を再ロードする権限が必要になる場合があります。

/etc/ini.d/nginx force-reload(centos)

私はそれを回避する方法があるのか​​、それとも別の方法で実行するのかは本当にわかりません。自分のアプリ(仮想ホスト)がたくさんある多くのサーバーでNGINXを使用しているからです。これは、NGINXが共有ホスティングに理想的でないことを意味します。

それにもかかわらず、構成は厄介なXMLファイルよりもはるかに読みやすいので、NGINXは本当に大好きです。味の質問だと思います。もう1つの優れた点は、スピードが重要であることは明らかです。

幸運の移行

0
Mig