ホームページ  >  に質問  >  本文

nginx を使用する初心者ですが、専門家にいくつか質問があります。

MOOC が nginx を使用して静的リソースをデプロイしていることを以前に見たので、ngjinx を使用してリソースをデプロイしてみたいと思いました。次に、次の質問が必要です:

  1. たとえば、MOOC.com のこのリンク: http://www.imooc.com/course/list、URL の後の /course/list とどのように一致しますか。# しか使用できません。 ## list.html、すべての接続にサフィックス .html が付かないようにします。これは URL を書き換えるためですか、それとも場所の構成 を使用しますか?
2.


上記は、リバース プロキシに使用される場所の設定です。

/test/test.html のようなものと一致するはずはありませんが、一致しなかったため、プロキシサーバーですが、静的ページは通常どおり表示されます。

ただし、これは

/products/getproducts/2 と一致する可能性があり、実際に localhost:8086/products/getproducts/2 に転送され、正しいデータは次のようになります。得られた。

まず、これら 2 つの質問をしてみましょう。私はサーバーについてあまり知りません。私は少し馬鹿かもしれません。答えていただければ幸いです。

为情所困为情所困2713日前549

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2017-05-16 17:25:54

    最初の質問:
    Nginx は、try_files ディレクティブを使用して、index.php などのフレームワークのフロントエンド コントローラーにリクエスト データを簡単にインポートできます:

    リーリー

    フロントエンド コントローラーのindex.php は、$_SERVER['REQUEST_URI'] を使用して URL パラメーターの文字列 /course/list を取得できます (/course/list?page=2&tag=mysql など)。 $_SERVER ['QUERY_STRING'] クエリ文字列 page=2&tag=mysql を取得し、それを自分で URL デコードし、explode を使用して文字列を & で分割し、$_GET と同様のパラメータ配列を取得できます。 $_GET を直接使用して取得することもできます。パラメータ配列を取得します。

    つまり、HTML 静的ファイルをロードして返すか、データベースに接続して処理するかを決定するのは、プログラムの入り口の Index.php とその内部のプログラムです。
    Nginx に HTML キャッシュがヒットしたかどうかを判断させたい場合は、次のように設定できます:

    リーリー

    たとえば、/post/1024 にアクセスすると、Nginx は try_files で指定された順序で次のファイルにアクセスしようとします。 /post/1024 ($uri はファイルを表します)
    /post/1024/ ($uri/はディレクトリを表します)
    /html/post/1024.html (/html$uri.html は HTML 静的キャッシュを表します)
    どちらも存在しない場合は、URI 情報とパラメータが処理のために Index.php に渡されます (最後の /index.php?$args はこの意味を表します)。

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-16 17:25:54

    質問 1、次のような rewrite メソッドを使用できます:

    リーリー

    コースで始まるすべてのリクエストのみが書き換えられることに注意してください
    xxx.com/course/list -> xxx.com/course/list.html
    xxx.com/course/list/sub -> xxx.com/course/list/sub.html

    質問 2
    都合がよければ、nginx の設定全体を投稿してください

    返事
    0
  • キャンセル返事