nginx インターフェイス サービス リバース プロキシの基本構成
server { listen 8443; # 监听的端口号 server_name a.test.com; # 服务器名称 client_max_body_size 100m; # 定义读取客户端请求头的超时时间 ssl on; ssl_certificate test.pem; ssl_certificate_key test.key; ssl_session_timeout 5m; ssl_protocols sslv3 tlsv1.2; ssl_ciphers ecdhe-rsa-aes256-sha384:aes256-sha256:rc4:high:!md5:!anull:!enull:!null:!dh:!edh:!aesgcm; ssl_prefer_server_ciphers on; location / { root /test-static-app; # 静态资源目录 index index.html index.htm; try_files $uri $uri/ /index.html; # 动态解析目录,配合vue的history模式 } }
基本構成では、ページと静的サーバーの基本機能を実装し、vue の履歴モード解析を使用する場合のルーティングを実装できます。 。さらに、インターフェースサーバーへの統一転送を実現するには、バックエンド開発者とインターフェース名のプレフィックスを指定する必要があります。たとえば、すべてのインターフェースの相対パスは api で始まります。このとき、次の設定 (前の場所と同じ)
... location /api { proxy_pass https://b.test.com; # 设置代理服务器的协议和地址 proxy_cookie_domain b.test.com a.test.com; # 修改cookie,针对request和response互相写入cookie } ...
は、主に proxy_pass に依存して、a.test.com の /api/x インターフェイスを b.test.com に転送します。プロセスは大まかに次のとおりです。
Cookie のやり取りは主に proxy_cookie_domain と次の段落です。
proxy_cookie_domain b.test.com a.test.com;
これにより、a.test.com 間の Cookie の転送と書き戻しが実現されます。および b.test.com ドメイン名。
node を使ってシミュレーションすると、おおよそ次のようになります
module.exports = (router) => { router.get('/api/index/getcmsinfo', async function (ctx, next) { // 接口转发 let result = await superagent.post('https://b.test.com/api/card/home').set(browsermsg) // 获取返回的set-cookie,并设置header let setcookie = result.headers['set-cookie'] if (setcookie) { ctx.response.header['set-cookie'] = setcookie } // 返回 ctx.response.body={ success: true, result: result.body } }) }
要約すると、nginx リバース プロキシの本質は、実際にはインターフェイス サービスの転送とヘッダー処理です。よく考えればわかることですが。
よくある誤解
1. 役に立たない aca ヘッダー?
インターネット上の多くの nginx クロスドメイン設定には、
add_header 'access-control-allow-origin' '*'; add_header 'access-control-allow-credentials' "true"; add_header access-control-allow-headers x-requested-with;
などのクロスドメイン ヘッダー設定に関連するコンテンツが追加されています。上記の原則について考えてみてください。これはまだ有効だと思いますか?役に立つ? ? aca (access-control-allow-) シリーズのヘッダーは CORS でのクロスドメイン ネゴシエーション用に構成されているため、ここでズボンを脱いでオナラする必要はありません。
2. proxy_pass ドメイン名には「slash/」が含まれていますか?
同様に、一部のネチズンが、以下に示すように、proxy_pass を設定した後にスラッシュを追加し、エラーが報告され、インターフェイスが見つからないと言うことをインターネットで見ました。その修正方法~
... location /api { #proxy_pass https://b.test.com; proxy_pass https://b.test.com/; } ...
これを見て考えてみましょう。proxy_pass の機能はリクエストをキャッチすることです。スラッシュを追加すると、すべての /api リクエストがルート ディレクトリに転送されることになります。つまり、/api は / になります。代わりに、現時点ではインターフェイス パスが変更されており、1 つのレイヤー/API が欠落しています。スラッシュを付けない場合はどうなるでしょうか?これは、b.test.com のドメイン名に転送されるときに、/api パスが失われないことを意味します。
この場合、バックエンド インターフェイスに /api などの所定のプレフィックスがある場合、ここでスラッシュを構成する必要はありません。別のケースでは、バックエンド インターフェイスが同じであり、統一プレフィックスがありません。ここでは区別する必要があり、すべてのフロントエンド インターフェイス (/api など) に統一プレフィックスを追加し、スラッシュを追加して置き換えます。 ~
以上がNginxリバースプロキシクロスドメイン基本設定方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Nginxは、高い並行リクエストの処理に適していますが、Apacheは複雑な構成と機能的拡張が必要なシナリオに適しています。 1.Nginxは、イベント駆動型の非ブロッキングアーキテクチャを採用しており、高電流環境に適しています。 2。Apacheはプロセスまたはスレッドモデルを採用して、複雑な構成のニーズに適したリッチモジュールエコシステムを提供します。

Nginxは、Webサイトのパフォーマンス、セキュリティ、およびスケーラビリティを改善するために使用できます。 1)逆プロキシおよびロードバランサーとして、Nginxはバックエンドサービスを最適化し、トラフィックを共有できます。 2)イベント駆動型および非同期アーキテクチャを通じて、nginxは高い並行接続を効率的に処理します。 3)構成ファイルでは、静的ファイルサービスやロードバランシングなどのルールの柔軟な定義を可能にします。 4)最適化の提案には、GZIP圧縮の有効化、キャッシュの使用、およびワーカープロセスの調整が含まれます。

Nginxunitは複数のプログラミング言語をサポートし、モジュラー設計を通じて実装されています。 1。言語モジュールの読み込み:構成ファイルに従って対応するモジュールをロードします。 2。アプリケーションの起動:呼び出し言語が実行されたときにアプリケーションコードを実行します。 3。リクエスト処理:リクエストをアプリケーションインスタンスに転送します。 4。応答返品:処理された応答をクライアントに返します。

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター
