Nginx のインストールと設定ルールの詳細な紹介

Nginx のインストールと設定ルールの詳細な紹介

1. nginxのインストールと操作(Mac OS環境)

1. nginxをインストールする

Homebrew 経由で直接インストールできます:

$brew nginx をインストール

インストール後、デフォルトのホームページファイルは/usr/local/var/wwwフォルダにあります。

デフォルトの設定ファイルのアドレスは/usr/local/etc/nginx/nginx.confです。

Nginx はデフォルトでポート 8080 を使用します。ポートが占有されていることがわかった場合 ( $lsof -i:8080でポートの占有状況を確認)、ポートを使用してプロセスを強制終了できます ( $kill 進程PID )。または、nginxのデフォルトポートを変更します( /usr/local/etc/nginx/nginx.conf

2. nginxを起動する

$brew サービスが nginx を起動します

または、 /usr/local/binディレクトリに移動して$./nginxと入力します。

起動が成功したら、ブラウザでhttp://localhost:8080/にアクセスすると、nginx サーバーから返された静的リソースが表示されます (デフォルトは /usr/local/var/www/index.html)。

3. nginxを停止する

$ nginx -s 停止

4. nginxを再起動する

$ nginx -s リロード

5. nginx設定パス情報を表示する

$brew 情報 nginx

2. nginxルールの設定

より多くの構成を表示できます

https://www.nginx.com/resources/wiki/start/#pre-canned-configurations

http://nginx.org/ja/docs/ を参照してください。

http://www.nginx.cn/doc/

1. 場所

場所の文法記事

2. ルートとエイリアス

nginx では、ルートとエイリアスを通じてリソースのアクセス パスを指定できます。

1) ルート:

位置 / {
  ルート /usr/local/var/www/;
  インデックス index.html index.htm;
}

上記のルールでは、アドレスhttp://localhost:8080/index.htmlが要求されると、アクセスされるリソースは /usr/local/var/www/index.html になります。

アドレスhttp://localhost:8080/test/a.pngを要求すると、アクセスされるリソースは /usr/local/var/www/test/a.png になります。

つまり、アクセスされるリソース アドレスは、実際には、root で指定されたパス + location で一致するパスになります。

2) 別名:

alias はエイリアスであり、その一致ルールは root のものと若干異なります。

場所 /a/ {
  エイリアス /usr/local/var/www/b/;
}

上記のルールでは、アドレスhttp://localhost:8080/a/要求すると、アクセスされるリソースは /usr/local/var/www/b/index.html になります。

アドレスhttp://localhost:8080/a/1.gifを要求すると、アクセスされるリソースは /usr/local/var/www/b/1.gif になります。

つまり、アクセスされるリソース アドレスは alias で指定されたパスであり、location で一致するパスとは関係ありません (location で一致するパスは破棄されます)。

3) ルートとエイリアスの違い:

エイリアスは location でのみ使用できますが、root は server、http、location に存在できます。

エイリアスの後には「/」が続く必要があります。そうしないと、ファイルは見つかりません。一方、ルートの場合は「/」はオプションです。

3. ファイルを試す

場所 /test/ {
  try_files $uri $uri/ /a/1.png;
}

try_files は、Web サイトのディレクトリからユーザーがアクセスしたファイルを読み取ろうとします。最初の変数が存在する場合は直接戻り、存在しない場合は 2 番目の変数の読み取りを続けます。存在する場合は直接戻り、存在しない場合は 3 番目のパラメータにジャンプします。

$uri は、ユーザーがアクセスしたアドレスを格納する nginx 変数です。たとえば、http://www.xxx.com/index.html にアクセスする場合、\$uri は /index.html になります。

$uri/ はアクセスされるディレクトリを表します。たとえば、http://www.xxx.com/hello/test/ の場合、\$uri/ は /hello/test/ になります。

たとえば、上記のルールでは、アドレスhttp://localhost:8080/test/2.png要求すると、try_files はそれがファイルかディレクトリかを判別します。最初のパラメータ $uri 変数に一致するファイルであることがわかります。次に、Web サイトのディレクトリに移動して、test/2.png ファイルが存在するかどうかを確認します。存在する場合は、それを読み取って直接返します。存在しない場合は、3 番目のパラメータにジャンプし、Web サイトのルート ディレクトリ + /a/1.png ファイル (/usr/local/var/www/a/1.png) を返します。

詳しい使用方法: https://www.jb51.net/article/156899.htm

4. 書き直す

構文を書き換える

書き換え機能は、URL の書き換えとリダイレクトを実装します。

構文書き換えrewrite regex replacement [flag];

rewrite はserver{}location{}if{}にのみ配置でき、渡されたパラメータを除くドメイン名の後の文字列に対してのみ機能します。たとえば、 http://www.xxx.com/a/b/index.html?param=1&u=strは /a/b/index.html のみを書き換えます。

書き換えの実行順序は次のとおりです。

  • サーバーブロックの書き換えディレクティブを実行する
  • 位置マッチングを実行する
  • 選択した場所で書き換えディレクティブを実行します

フラグフラグ:

  • last : Apacheの[L]フラグに相当し、書き換えが完了したことを示します。
  • break: 現在の仮想ホストの後続の書き換え命令セットの実行を停止します
  • リダイレクト: 302一時リダイレクトを返し、アドレスバーにリダイレクトされたアドレスが表示されます。
  • permanent: 301永続リダイレクトを返し、アドレスバーにリダイレクトされたアドレスが表示されます。
場所 /home/ {
  ^/home/test/ http://www.baidu.com を書き換えます。
}

上記のルール: アドレスhttp://localhost:8080/home/test/アクセスすると、ページは http://www.baidu.com にリダイレクトされます。

いくつかのヒント:

ブラウザの URL 表示を変更せずに nginx で URL をリダイレクトするにはどうすればよいですか?

proxy_passはリバースプロキシを指定できます

詳しい使用方法: https://www.jb51.net/article/134233.htm

3. コマンドライン設定(Mac OS)

1. コマンドラインでvscodeを使ってファイルを開く方法

/usr/local/bin/ をコピーします
ln -s "/Applications/Visual Studio Code.app/Contents/MacOS/Electron" vscode

このうち、 /Applications/Visual Studio Code.app/Contents/MacOS/Electronが vscode の実行ファイルであり、ln -s コマンドはこれをソフトリンク経由で /usr/local/bin/ ディレクトリに置くというものです。この方法では、コマンドラインの別の場所にある vscode コマンドを使用してファイルを開くことができます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • CentOS 6.4 のインストールと LNMP サーバーの設定 (Nginx+PHP+MySQL)
  • PHP をサポートするための nginx のインストールと設定に関するチュートリアル (完全版)
  • php-fpm をインストールして設定し、Nginx+PHP の運用環境を構築します。
  • MacでのNginxインストール環境設定の詳細な説明
  • Nginx サーバーに PHPMyAdmin をインストールして設定するチュートリアル
  • Nginx サーバーのインストールと基本的な設定の概要
  • Nginx の簡単なインストールと設定方法のグラフィックチュートリアル

<<:  React は入力値を取得し、2 つのメソッドの例を送信します

>>:  MySQL データ ウェアハウスを保護するための 5 つのヒント

推薦する

Linuxで環境変数を削除する詳細な手順

Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

js ドラッグ アンド ドロップ テーブルでコンテンツ計算を実現する

この記事の例では、コンテンツの計算を実現するためのjsドラッグアンドドロップテーブルの具体的なコード...

vue3 を使用してマテリアル ライブラリを構築する方法

目次なぜマテリアルライブラリが必要なのでしょうか?材質は何ですか?素材の種類fuep、vue3 ベー...

html2canvasで画像が正常にキャプチャできない時の解決方法

質問まず、私が遭遇した問題についてお話しします。まず、そういった需要があるわけです。フロントエンドは...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

ウェブフロントエンドコードを書く際の考慮事項のまとめ

1. HTMLタグの前に次のような文を追加するのが最適です。 <!DOCTYPE HTML P...

仮想マシンを作成し、VMware に Redhat Linux オペレーティング システムをインストールする (グラフィック チュートリアル)

VMware で仮想マシンを作成し、Redhat Linux オペレーティング システムをインスト...

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

Linux システムで TCP 接続を作成するプロセスの紹介

目次LinuxでTCPを作成する手順サーバクライアントTCP確立プロセスサンプルコードLinuxでT...

MySQLのグローバルロックとテーブルロックに関する詳細な理解

序文ロックの範囲に応じて、MySQL のロックは、グローバル ロック、テーブル ロック、行ロックに大...

MySQL テーブル自動増分 ID オーバーフロー障害レビュー ソリューション

問題: MySQLテーブル内の自動増分IDのオーバーフローによりビジネスブロックが発生した背景: t...

Node.js で簡単なクローラーケースを作成するチュートリアル

準備まず、nodejs をダウンロードする必要がありますが、これは問題ないはずです。原文はwebst...

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...