2017-11-28 13 views
0

私はWordpress MUのインストールで2つのドメインを有効にする瞬間に立ち往生してきました。主な質問:両方のドメインを理解するためにニスを正しく構成する方法は?ニスnginx wordpress ssl複数のドメイン

は、私は次の設定があります。

nginxのフロントエンド - >ワニスキャッシュ - >ワニスバックエンド

ネットワークは、このように構成された

:80と::443は、ローカルに翻訳されてい ポートのための私の本当のIPへのすべてのリクエストIP 192.168.1.70〜Nginx。 Nginxはすべての要求を80から443に移しました。そしてすべての要求はワニスに行きます。キャッシュがない場合、Varnishはバックエンドに尋ねます。 nginxのための

4設定ファイル:フロントエンドの frontend-domain1.com frontend-domain2.com

Configsに "サーバー名" "proxy_set_headerホスト" オプション

server { 
listen  192.168.1.70:80; 
server_name domain1.com; 
return 301 https://$server_name$request_uri; 
} 

server { 
listen  192.168.1.70:443 ssl; 
server_name domain1.com; 

keepalive_timeout    60 60; 

gzip    on; 
gzip_comp_level  1; 
gzip_min_length  512; 
gzip_buffers  8 64k; 
gzip_types text/plain; 
gzip_proxied  any; 

ssl on; 
ssl_stapling on; 
resolver 8.8.8.8 8.8.4.4; 
ssl_prefer_server_ciphers on; 
ssl_session_cache shared:SSL:10m; 
ssl_session_timeout 5m; 
ssl_certificate  /chain.crt; 
ssl_certificate_key /private.key; 
ssl_dhparam /dhparams.pem; 
ssl_protocols TLSv1.2 TLSv1.1 TLSv1; 
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:E$ 

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains'; 
location/{ 
    proxy_pass  http://127.0.0.1:6081/; 
    proxy_set_header Host    domain1.com; 
    proxy_set_header X-Real-IP   $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto https; 
    proxy_set_header X-Forwarded-Port 443; 
    } 
} 

バックエンドドメイン1を除いて似ています.COM backend-domain2.comバックエンドの Configsには、サーバー名オプションを除いて同様である

server { 
listen 127.0.0.1:81; 

root /web/sites/domain1; 
index index.php; 

gzip    on; 
gzip_comp_level  1; 
gzip_min_length  512; 
gzip_buffers  8 64k; 
gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; 
gzip_proxied  any; 

server_name domain1.com; 

location ~ /\. { 
    deny all; 
} 

location/{ 
    try_files $uri $uri/ /index.php?$args; 
} 

rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

location ~ \.php$ { 
    try_files $uri =404; 

location ~* /(?:uploads|files)/.*\.php$ { 
    deny all; 
} 

rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

location ~ \.php$ { 
    try_files $uri =404; 

    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_pass unix:/var/run/php7.0-fpm.sock; 
} 

} 

ワニスConfigsに:私は

#  if (req.http.cookie ~ "^ *$") { 
#     unset req.http.cookie; 
#  } 

のコメントを外した場合は、 "req.http.host"

sub vcl_recv { 

    if (req.http.host == "domain1.com") { 
      if (req.url !~ "^/wp-(login|admin)") { 
      unset req.http.cookie; 
      } 
    } 

    set req.http.host = regsub(req.http.host, "^www\.", ""); 
    set req.http.host = regsub(req.http.host, ":[0-9]+", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "_ga=[^;]+(;)?", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "_gat=[^;]+(;)?", ""); 

    if (req.http.Authorization || req.method == "POST") { 
      return (pass); 
    } 

    if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true") { 
      return (pass); 
    } 

    if (req.url ~ "sitemap" || req.url ~ "robots") { 
      return (pass); 
    } 

    set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", ""); 
    set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(;)?", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(;)?", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(;)?", ""); 
    set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(;)?", ""); 

#  if (req.http.cookie ~ "^ *$") { 
#     unset req.http.cookie; 
#  } 

    if (req.url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)") { 
      unset req.http.cookie; 

    if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_") { 
      return (pass); 
    } 

    if (!req.http.cookie) { 
      unset req.http.cookie; 
    } 

    if (req.http.Authorization || req.http.Cookie) { 
      # Not cacheable by default 
      return (pass); 
    } 

    return (hash); 
} 
sub vcl_pass { 
    return (fetch); 
} 

sub vcl_hash { 
    hash_data(req.url); 

    return (lookup); 
} 

sub vcl_backend_response { 

    unset beresp.http.Server; 
    unset beresp.http.X-Powered-By; 

    if (bereq.url ~ "sitemap" || bereq.url ~ "robots") { 
      set beresp.uncacheable = true; 
      set beresp.ttl = 30s; 
      return (deliver); 
    } 
    if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg|htm|html") 
{ 
      unset beresp.http.cookie; 
      set beresp.ttl = 7d; 
      unset beresp.http.Cache-Control; 
      set beresp.http.Cache-Control = "public, max-age=604800"; 
      set beresp.http.Expires = now + beresp.ttl; 
    } 

    if (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true") { 
      set beresp.uncacheable = true; 
      set beresp.ttl = 30s; 
      return (deliver); 
    } 

      if (!(bereq.url ~ "(wp-login|wp-admin|preview=true)")) { 
      unset beresp.http.set-cookie; 
    } 

    if (bereq.method == "POST" || bereq.http.Authorization) { 
      set beresp.uncacheable = true; 
      set beresp.ttl = 120s; 
      return (deliver); 
    } 

    if (bereq.url ~ "\?s="){ 
      set beresp.uncacheable = true; 
      set beresp.ttl = 120s; 
      return (deliver); 

    if (beresp.status != 200) { 
      set beresp.uncacheable = true; 
      set beresp.ttl = 120s; 
      return (deliver); 
    } 

    set beresp.ttl = 1d; 
    set beresp.grace = 30s; 

    return (deliver); 
} 

sub vcl_deliver { 
    unset resp.http.X-Powered-By; 
    unset resp.http.Server; 
    unset resp.http.Via; 
    unset resp.http.X-Varnish; 

    return (deliver); 
} 

: default.vcl

vcl 4.0; 

backend default { 
    .host = "127.0.0.1"; 
    .port = "81"; 
} 

acl purge { 
    "localhost"; 
    "127.0.0.1"; 
    "192.168.1.70"; 
} 

sub vcl_recv { 

    if (req.method == "PURGE") { 
      if (!client.ip ~ purge) { 
        return(synth(405, "This IP is not allowed to send PURGE 
requests.")); 
      } 
      return (purge); 
    } 
} 

include "/etc/varnish/domain1.vcl"; 
include "/etc/varnish/domain2.vcl"; 

domain1.vclとdomain2.vclはと異なります最初に開いたドメインのインデックスが表示されます。 2番目のドメインを無視しました。他のすべてのリンクは完全に機能します。私はワニスを再起動し、第2のドメインに尋ねると、最初のドメインのホームページは表示されません。

主な質問:両方のドメインを正しく理解するためにニスを正しく設定する方法はありますか?

rus:каккорректнозаставвитьварнишобрабітаватьдванасколькодомена\доменов?ソフトウェアの

答えて

0

バージョン: ワニス-4.1.1改正66bb824 nginxのバージョン:nginxの/ 1.10.3 PHP 7.0-FPM

OS:Ubuntuの16.04.3 LTS

0

ワニスは透明です HTTPプロキシであり、実際に何や何個のドメインを通過するかは気にしません。それはあなたのバックエンド(nginx)にブラウザによって送られた同じHostヘッダーを転送します。

このように、nginxの設定(またはウェブサーバーの構成)が、希望のドメイン名をリッスンすることを確認するだけで済みます。

したがって、nginxのlistenディレクティブが、ブラウザでウェブサイトにアクセスするドメイン名と同じであることを確認してください。それと同じくらい簡単です。

proxy_set_header Host $host; 

P.S.:SSLターミネーションサーバブロックで

、以下では、ドメイン名のハードコーディングを避けるために役立ちますさて、あなたとnavayal :)

+0

ハードヒューマニストは1を集める10のマニュアルの:)なければなりません。ここraskomentirovaniiは、2つの主要なページのいずれかをコードの小片出力することを主な問題。 –

+0

インストールproxy_set_headerホスト$ホストディレクティブ。状況が助けにならなかった –

関連する問題