Nginxは、Linuxで.NET Coreプロジェクトをホストしているシリーズ(5)の数を知っています。

ディレクトリ

1.はじめに

2.インストール

3.詳細構成ファイル

4.動作原理

5. Linuxでの.NET Coreプロジェクトのホスティング

6. Linuxでの.NET Coreプロジェクトの負荷分散

7. Linux(マスタースレーブモード)での.NET CoreプロジェクトのNginx + Keepalived高可用性

8. .NET CoreプロジェクトNginx + LinuxでのKeepalived高可用性(デュアルマスターモード)

9. Linuxでの.NET Coreプロジェクト用のLVS + Keepalived + Nginx高可用性クラスター

10.静的サーバーを構築する

11.ログ分析

12.最適化戦略

13.まとめ

 

ここでは、Linuxに.Net Coreとプロセスデーモンの監視をデプロイする方法は紹介しません。必要に応じて、以前に公開された記事を表示できます。Linux(Centos7)への.NET Coreプロジェクトの配備(6)Linuxへの.NET Coreプロジェクトのリリース」、「Linux(Centos7)への.NET Coreプロジェクトの配備(7).NET Coreプロジェクトの開始と停止」、「. NET CoreプロジェクトはLinux(Centos7)(8)にデプロイされ、.NET Coreプロジェクトのスーパーバイザプロセスガーディアンモニタリングを作成します

ASP.NET CoreにはKestrelサーバーが組み込まれていますが、その機能はシンプルです。フル機能のWebサーバーではありません。主にSelfHostに使用されます。ASP.NETを可能な限り高速にするために設計されていますが、セキュリティを管理し、静的ファイルを提供する機能が制限されています正式な運用は、IIS、Apache、Nginx、およびその他のフル機能のサーバーに依存して、キャッシュ、圧縮要求、SSL端末などの高度な機能をASP.NET Coreプログラムに提供する必要があります。これら2つのサーバーの関係は、KestrelのリバースプロキシサーバーとしてのNginx、IISなどです。

 

1.ポートマッピング構成

 

#nginx.confを編集
sudo vim /etc/nginx/nginx.conf

#ファイルを入力した後、「i」または「a」を押して挿入モードに入り、次の構成情報を挿入します

 

入って、http構成の下のサーバーのデフォルト構成をコメント化します。

 

#構成の詳細については、以下を参照してください。
#*公式英語ドキュメント:http://nginx.org/en/docs/
#*ロシア公式ドキュメント:http://nginx.org/ru/docs/

ユーザーnginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

#動的モジュールをロードします。/usr/share/doc/nginx/README.dynamicを参照してください。
/usr/share/nginx/modules/*.confを含めます。

イベント{
    worker_connections 1024;
}

http {
    log_format main '$ remote_addr-$ remote_user [$ time_local] "$ request"'
                      '$ status $ body_bytes_sent "$ http_referer"'
                      '"$ http_user_agent" "$ http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfileがオン。
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    /etc/nginx/mime.typesを含めます。
    default_type application / octet-stream;

    #/etc/nginx/conf.dディレクトリからモジュール構成ファイルをロードします。
    #http://nginx.org/en/docs/ngx_core_module.html#includeを参照
    # 詳細については。
    /etc/nginx/conf.d/*.confを含めます。

#サーバー{
#listen 80 default_server;
#listen [::]:80 default_server;
# サーバー名 _;
#root / usr / share / nginx / html;
##既定のサーバーブロックの構成ファイルを読み込みます。
#/etc/nginx/default.d/*.confを含めます;
#場所/ {
#}
#error_page 404 /404.html;
#場所= /40x.html {
#}
#error_page 500 502 503 504 /50x.html;
#場所= /50x.html {
#}
#}

#TLS対応サーバーの設定。
#サーバー{
#443 ssl http2 default_serverをリッスンします。
#listen [::]:443 ssl http2 default_server;
# サーバー名 _;
#root / usr / share / nginx / html;
#ssl_certificate "/etc/pki/nginx/server.crt";
#ssl_certificate_key "/etc/pki/nginx/private/server.key";
#ssl_session_cache shared:SSL:1m;
#ssl_session_timeout 10m;
#ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_prefer_server_ciphers on;
##既定のサーバーブロックの構成ファイルを読み込みます。
#/etc/nginx/default.d/*.confを含めます;
#場所/ {
#}
#error_page 404 /404.html;
#場所= /40x.html {
#}
#error_page 500 502 503 504 /50x.html;
#場所= /50x.html {
#}
#}

}

 

#Escキーを押し、コマンドを入力して構成ファイルを保存します
:wq(編集操作の保存出口)
:wq!(編集を保存して強制終了)
:w!須藤ティー%

 

元のマッピングに注釈を付けたら、.Net Coreプロジェクトの新しいDemoNetCore.confファイルを/etc/nginx/conf.dフォルダーに作成する必要があります。ファイル構成は次のとおりです。

 

#conf.dフォルダーに入る
cd /etc/nginx/conf.d

#構成ファイルを作成する
sudo touch DemoNetCore.conf

#設定ファイルを編集
sudo vim DemoNetCore.conf

#構成ファイル情報
サーバー{
    80を聞く;
    場所/ {
    proxy_pass http:// localhost:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $ http_upgrade;
    proxy_set_header接続キープアライブ。
    proxy_set_header Host $ host;
    proxy_cache_bypass $ http_upgrade;
    }
}

 

構成後、Nginxを再起動します。再起動すると、次のように直接エラーが報告される場合があります

 

#Nginxを再起動する
sudo systemctl restart nginx

 

  

この時点で、最初にNginx関連のプロセスを見つけてから、直接killしてから開始します。

 

#View Nginxプロセス
ps aux | grep nginx

#キル関連プロセス
sudo kill -9 2058
sudo kill -9 2059

#Nginxを再起動する
sudo systemctl restart nginx

 

 

2.効果を確認する

 

  

502 Bad Gatewayがここに表示されます、理由はSELinux構成の問題です

 

 Security-Enhanced Linux(略してSELinux)は、Linuxカーネルモジュールであり、Linuxのセキュリティサブシステムです。
SELinuxは主に国家安全保障局によって開発されました。SELinuxモジュールは、バージョン2.6以降のLinuxカーネルに統合されています。
SELinuxの構造と構成は非常に複雑で、概念的なものがたくさんあり、学ぶのがより困難です。多くのLinuxシステム管理者は、トラブルのためSELinuxをシャットダウンしました。
SELinuxをマスターして正しく使用できれば、システム全体は基本的に「破壊不可能」のポイントに到達できると思います(絶対的なセキュリティはないことを常に覚えておいてください)。
SELinuxの基本概念と簡単な設定方法を習得することは、すべてのLinuxシステム管理者にとって必須のコースです。

 

したがって、この問題には2つの解決策があります。

 

①、SELinuxを直接閉じる

 

#SELinuxディレクトリを入力します
cd / etc / selinux

#selinux設定ファイルを編集
sudo vim config

#構成を変更します:SELINUX =無効、保存して終了

 

保存後、強制または許可から無効に変更します。有効にするには再起動する必要があります。再起動すると、次の画像が正常であることがわかります。

 

  

②NginxをSELinuxのホワイトリストに追加

 

yum -y install policycoreutils-python  
cat /var/log/audit/audit.log | grep nginx | grepが拒否されました| audit2allow -M mynginx  
semodule -i mynginx.pp 

 

 

おすすめ

転載: www.cnblogs.com/jayjiang/p/12687144.html