Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり、汎用プロキシ サーバー (TCP/UDP/IMAP/POP3/SMTP) でもあります。元々はロシア人の Igor Sysoev によって作成されました。 基本コマンド nginx -t は設定ファイルの構文エラーをチェックします nginx サーバーをセットアップして起動したら、まず nginx のデフォルト設定を確認し、次にさまざまな使用シナリオを 1 つずつ紹介します。 デフォルト設定 Nginxのインストールディレクトリで、`nginx.conf`のコピーを`nginx.conf.default`に設定ファイルのバックアップとしてコピーし、`nginx.conf`を変更します。 # ワーカープロセスの数 worker_processes 1; イベント { worker_connections 1024; #ワーカープロセスあたりの接続数} http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; # ログ形式 log_format access '$remote_addr - $remote_user [$time_local] $host "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$clientip"'; access_log /srv/log/nginx/access.log access; # ログ出力ディレクトリ gzip オン; ファイル送信オン; # リンクタイムアウト、自動切断 keepalive_timeout 60; # 仮想ホストサーバー { 8080を聴く; server_name localhost; # ブラウザアクセスドメイン名 charset utf-8; access_log ログ/localhost.access.log アクセス; # ルートの場所 / { root www; # ルートディレクトリにアクセスします index index.html index.htm; # エントリファイル} } #その他の設定ファイルを導入する include servers/*; } サイトを構築する その他の設定ファイル `servers` ディレクトリに、新しいサイト設定ファイル xx.conf を追加します。 127.0.0.1 xx_domian#仮想ホストをコンピュータのhostsファイルに追加します。 サーバー{ 8080を聴く; server_name xx_domian; #ブラウザアクセスドメイン名 charset utf-8; access_log ログ/xx_domian.access.log アクセス; # ルートの場所 / { root www; # ルートディレクトリにアクセスします index index.html index.htm; # エントリファイル} } nginx -s reload コマンドを実行します。成功したら、ブラウザで xx_domian にアクセスするとページが表示されます。 ファイルの種類に応じて有効期限を設定する 場所 ~.*\.css$ { 有効期限は1日です。 壊す; } 場所 ~.*\.js$ { 有効期限は1日です。 壊す; } 場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { access_log オフ; 15日で期限切れになります。#15日間保存します。 } # curl -x127.0.0.1:80 upload/2022/web/logo.png -I #画像の最大保存期間をテストする ファイルキャッシュを無効にする 開発環境ではコードが変更されることが多く、その効果を確認するにはブラウザのキャッシュを更新する必要があります。ブラウザのキャッシュを無効にして効率を上げる方法 場所 ~* \.(js|css|png|jpg|gif)$ { add_header Cache-Control no-store; } アンチホットリンク 他のウェブサイトからファイルが呼び出されないようにする 場所 ~* \.(gif|jpg|png)$ { # 192.168.0.1 のみがリソースを要求できるようにします valid_referers none blocked 192.168.0.1; ($invalid_referer) の場合 { ^/ http://$host/logo.png を書き換えます。 } } 静的ファイル圧縮 サーバー{ # gzip 圧縮をオンにします gzip on; # gzip に必要な最小 HTTP プロトコル バージョンを設定します (HTTP/1.1、HTTP/1.0) gzip_http_バージョン1.1; # 圧縮レベルを設定します。圧縮レベルが高いほど、圧縮時間が長くなります (1-9) gzip_comp_レベル4; # 圧縮の最小バイト数を設定し、ページ Content-Length から gzip_min_length 1000 を取得します。 # 圧縮ファイルのタイプを設定する (text/html) gzip_types テキスト/プレーン アプリケーション/javascript テキスト/css; } nginx -s reloadコマンドを実行し、成功したらブラウザでアクセスします。 エラーページを指定する # ステータスコードに応じて、対応するエラーページを返します error_page 500 502 503 504 /50x.html; 場所 = /50x.html { ルート /source/error_page; } nginx -s reloadコマンドを実行し、成功したらブラウザでアクセスします。 クロスドメインの問題 クロスドメインの定義 同一オリジンポリシーは、同じオリジンから読み込まれたドキュメントまたはスクリプトが別のオリジンのリソースと対話する方法を制限します。これは、潜在的に悪意のあるファイルを隔離するための重要な安全メカニズムです。異なるソース間の読み取り操作は通常許可されません。 相同の定義 プロトコル、ポート (指定されている場合)、ドメイン名が同じである場合、2 つのページのオリジンは同じになります。クロスドメイン問題を解決する Nginx の原理 例えば:
これで、http://xx_domain が https://github.com にリクエストを送信すると、クロスドメイン リクエストが発生します。 ただし、nginx サーバーを起動し、server_name を xx_domain に設定し、対応する場所を設定して、フロントエンドに必要なクロスドメイン リクエストをインターセプトし、最後にリクエストを github.com にプロキシするだけです。次の構成に示すように: ## リバースプロキシパラメータを設定する server { 8080を聴く; サーバー名 xx_ドメイン ## 1. ユーザーが http://xx_domain にアクセスすると、リバースプロキシは https://github.com に移動します。 位置 / { proxy_pass https://github.com; proxy_redirect オフ; proxy_set_header Host $host; # ドメイン名を渡す proxy_set_header X-Real-IP $remote_addr; # IPを渡す proxy_set_header X-Scheme $scheme; #送信プロトコル proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } これにより、ブラウザの同一オリジン ポリシーを完全に回避できます。github.com が nginx の github.com にアクセスすると、同一オリジン アクセスとなり、nginx がサーバーに転送したリクエストはブラウザの同一オリジン ポリシーをトリガーしません。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.13 zipパッケージのインストール方法について
>>: データベースの削除から逃走までの MySQL の徹底分析_上級編 (I) - データ整合性
目次1. 技術概要2. 技術的な詳細1. インターフェースからバックエンドデータを取得する2. フロ...
この記事では、VMware Workstation 14 Proにシステムをインストールする方法を紹...
目次マインドマップとは何ですか? F6で描く方法アリペイ微信要約するマインドマップとは何ですか?マイ...
1. 公式ウェブサイトから 64 ビットの zip ファイルをダウンロードします。 2. インスト...
問題の説明(キープアライブとは何か)キープアライブ 名前の通り、アクティブな状態を維持します。誰が活...
0. 概要Zabbix は非常に強力なオープンソースの監視ツールです。以下では、Zabbix がテー...
目次ロックの概要ロックの分類データベース操作の粒度データ操作の種類MySQL ロックさまざまなストレ...
エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...
この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...
Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...
目次序文グローバルパラメータの永続性最後に要約する参考資料:序文2018 年に MySQL 8.0....
目次Vue2 レスポンシブ原則のレビューVue3 レスポンシブ原則の分析ネストされたオブジェクトの応...
おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...
レンダリング原理フォーム要素には、正規表現(携帯電話番号、メールアドレス、IDカードなど)をカスタマ...
序文MySQL は MySQL 5.6 からマルチスレッド レプリケーションをサポートしていますが、...