2016-04-19 17 views
2

私は、次のnginxのconfにnginxの構成のベストプラクティス

upstream artifactory_lb { 
     server main_server.com:8081 ; 
     server backup_server.com:8081 backup; 
} 

log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name to: $upstream_addr: $request upstream_response_time $upstream_response_time msec $msec request_time $request_time'; 

ssl_certificate /path/to/cert 
ssl_certificate_key /path/to/key 
ssl_protocols TLSv1.1 TLSv1.2; 
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 
ssl_session_cache shared:SSL:10m; 

server { 
     listen 80; 
     listen 443 ssl; 
     client_max_body_size 2048M; 
     location/{ 
       proxy_set_header Host $host; 
       proxy_pass http://artifactory_lb; 
       proxy_read_timeout 90; 
     } 
     access_log /var/log/nginx/access.log upstreamlog; 
     location /basic_status { 
       stub_status on; 
       allow all; 
       } 
} 

# Server configuration 

server { 
    listen 2222 ssl; 


    server_name main_server.com; 
    if ($http_x_forwarded_proto = '') { 
     set $http_x_forwarded_proto $scheme; 
    } 

    rewrite ^/(v1|v2)/(.*) /api/docker/inhouse_images/$1/$2; 
    client_max_body_size 0; 
    chunked_transfer_encoding on; 

    location/{ 
    allow all; 
    proxy_read_timeout 900; 
    proxy_pass_header Server; 
    proxy_cookie_path ~*^/.* /; 
    proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host; 
    proxy_set_header X-Forwarded-Port $server_port; 
    proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; 
    proxy_set_header Host    $http_host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://main_server.com:8081/artifactory/; 

    } 
} 

お知らせ単一障害点を追加し、サーバーの単一のインスタンスに「proxy_pass」ディレクティブポイントことがあります。この問題を回避する方法はありますか?

Nginx構成には、2組のアップストリームサーバーがありますか?したがって、この場合は次のようになります

upstream artifactory_lb1 { 
      server main_server.com:8081 ; 
      server backup_server.com:8081 backup; 
    } 

    upstream artifactory_lb2 { 
      server main_server.com:8081/artifactory/; 
      server backup_server.com:8081/artifactory/ backup; 
    } 

これは良い方法と考えられますか? @AlexeyTenで述べたように

+0

を使用することができます。しかし、あなたの2番目のものは間違っています、 '上流の'サーバはパス部分だけを含むことができません、host:portだけです。 –

+0

ところで、私はなぜあなたの 'main_server.com'が'バックアップ 'としてマークされているのか分かりません。 –

+0

こんにちはアレクセイ、コピーペーストエラー、それを指摘していただきありがとうございました。特定のポート(この場合2222)へのリクエストを特定のルート(この場合は/ artifactory /)にリダイレクトしたい場合、proxy_pass指示文に文字列を追加する方法はありますか? –

答えて

0

、あなたは単にあなたが必要な数の `upstream`ブロックを持つことができ

proxy_pass http://artifactory_lb/artifactory/; 
関連する問題