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) - データ整合性
問題の原因:スレーブサーバーがクローンマスターサーバーである場合、server-uuidの値は同じで...
mysql 5.7.19 winx64のインストールチュートリアルは以下のように記録され、みんなと...
MySQLの完全バックアップを実行するときは、--all-databaseパラメータを使用します。例...
MySQLはインストール版と無料インストール版に分かれていますインストール版の拡張子はmsi、無料イ...
目次posgresql バックアップ/リストアMySQL バックアップ/復元posgresql バッ...
他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンが...
目次1. 概要1.1 定義1.2 機能説明2. ELKを展開する2.1 ディレクトリとファイルを作成...
実際の業務では、Excel からデータベースにデータをインポートする必要がある場合があります。データ...
ウィンドウ環境にmysql5.7.21をインストールします。詳細は次のとおりです。 1. MySQL...
目次導入Tomcatへの接続方法APR と Tomcat ネイティブtomcat で APR を使用...
Element-UI に慣れた開発者なら、無限スクロールの InfiniteScroll が使いにく...
目次1. 概念をすぐに認識する: 2. ローカルフィルター: 3. グローバルフィルター: 4. 拡...
CSSの記述順序1. 位置属性(位置、上、右、z-index、表示、フロートなど) 2. サイズ(...
目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...