SpringCloudマイクロサービスは、リバースプロキシゲートウェイを達成-Nginxノート

背景

現在SpringCloudマイクロサービスアーキテクチャの下では、障害が発生したゲートウェイ、単一のポイントはnginxのリバースプロキシ機能により高可用性ゲートウェイを達成することができ、高可用性ゲートウェイを確保するために、クラスタ全体のサービスの麻痺を引き起こす可能性があります一度入り口ゲートウェイサービスは、特に重要であるとして。

プロジェクト出典:https://github.com/taoweidong/Micro-service-learning/tree/SpringCloud-branch

プロジェクトチャート

ここに画像を挿入説明

  • nginxのは、リバースプロキシサーバとして、バックエンドのプロキシゲートウェイサービスは、内蔵のロードバランシングアルゴリズムnginxのを介して転送します
  • サーバーに障害が発生した場合Zullゲートウェイクラスターの展開は、高可用性ゲートウェイを確保するために別のマシン、通常のアクセスサービスに転送されます

具体的な取り決め

ローカルホストファイルの変更

(C:\ WINDOWS \ System32に\ドライバ\など)別のドメイン名を使用するリバースプロキシを達成するために、対応する内部IPアドレスを変更するには、次のファイルを編集します。
ここに画像を挿入説明ここに画像を挿入説明

nginxの設定

ダウンロード

nginxのダウンロード(WindowsおよびLinuxの設定など):http://nginx.org/en/download.html

コンフィギュレーション

解凍後、nginx.conf設定ファイル\ nginxの-1.12.2 \ confに\見つける
ここに画像を挿入説明詳細な構成を

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    #配置上游服务器网关端口集群
    upstream  backServer{
        # weight 权重:谁的的权重多,访问到哪个服务的几率就大
        server 127.0.0.1:8040 weight=1;
        server 127.0.0.1:8041 weight=1;
    }

    server {
        # 注意:如果使用域名进行反向代理的话,Nginx的端口必须是80
        listen       80;
        # 入口地址-对应域名地址
        server_name  www.taowd123.com;  

        location /ms {
            ### 指定上游服务器负载均衡服务器
            proxy_pass http://backServer/;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        # 错误页面
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
      
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

テスト

  • レジストリサービス:http://127.0.0.1:8761/
  • 開始2ゲートウェイポートは以下のとおりです。8041,8040
  • サービスプロバイダ、ポートを起動します。9000はZuulに設定されています
  • スタートnginxのサービス
    ここに画像を挿入説明
  • アクセスレジストリ検査サービス
    ここに画像を挿入説明
  • ノーマルへの直接アクセスするためのゲートウェイポートを使用します
    ここに画像を挿入説明
  • ドメイン・ホストは、ダイレクトアクセス、リバースプロキシ機能試験使用して設定
    ここに画像を挿入説明背景ゲートウェイ出力をチェックし、アクセス時間を
    ここに画像を挿入説明

参照

https://blog.csdn.net/kxj19980524/article/details/87868108

個人のブログへようこそ:http://www.taoweidong.com/

おすすめ

転載: www.cnblogs.com/taowd/p/11575630.html