ディレクトリ
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