オープニングの引数
Asp.netコアは、なぜ我々はそれを行うには、このようなIIS、Apacheやnginxのリバースプロキシとして使用する必要がありますケストレルが付属していますか?
原因分析
- ケストレルは動的なコンテンツAsp.netコアを運ぶために使用問題ありませんが、それのページの負荷容量や機能は、Apacheやnginxのは非常に強く、IISではありません。
- リバースプロキシを使用した後、ケストレルは仕事をするために、リバースプロキシサーバーに静的コンテンツと圧縮終了要求をキャッシュすることができます。
設置場所
一般的に、リバースプロキシサービスは、同じサーバー上のアプリケーションをインストールすることができ、あなたは別のサーバーを使用することができます。
使用
設定アプリケーション
リバースプロキシの使用は、要求ヘッダーが原因に従って、中間体を追加する必要があると、エラーが発生し、この過程でそのような要求元IP等へのアクセスのような変更の数を発生するため。
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
app.UseAuthentication();
その後、ホワイトリストに追加したプロキシサーバーのIPを信頼できる必要があります。
services.Configure<ForwardedHeadersOptions>(options =>
{
options.KnownProxies.Add(IPAddress.Parse("10.0.0.100"));
});
プロキシを使用します
インストールプロセスでは、設定例について、次のことを言っているのではない(Ubuntuの上でnginxの)が含ま:
変更の/ etc / nginxの/サイト利用可能/デフォルト次のように読み取ります。
server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
詳細については、マイクロソフト公式ドキュメントを参照してください。https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-3.0