Wordpress MU 설치에서 2 개의 도메인을 사용하도록 설정했습니다. 주요 질문 : 두 영역을 모두 이해하기 위해 바니시를 올바르게 구성하는 방법은 무엇입니까?니스 nginx wordpress ssl 여러 도메인
나는 다음 설정이 있습니다
Nginx의 프론트 엔드 -> 니스 캐시 -> 니스 백엔드
네트워크는 다음과 같이 구성: 80 : 443 로컬 변환됩니다 포트에 대한 내 진짜 IP에 대한 모든 요청 IP 192.168.1.70 to Nginx. Nginx는 모든 요청을 80에서 443으로 변경했습니다. 그런 다음 모든 요청이 바니시로 전달됩니다. 캐시가없는 경우 Varnish는 백엔드에 요청합니다. nginx를위한
4 설정 파일 : 프론트 엔드의
CONFIGS이 proxy_set_header 호스트 ","서버 _ "를 제외하고 유사하다 frontend-domain1.com frontend-domain2.com"옵션
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;
}
}
백엔드 domain1을 .com backend-domain2.com 백엔드의 구성은 server_name 옵션을 제외하고 비슷합니다.
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과는 상이 첫 번째 열린 도메인에 대한 색인을 표시합니다. 두 번째 도메인을 무시했습니다. 다른 모든 링크는 완벽하게 작동합니다. 다시 니스를 다시 시작하여 두 번째 도메인에 요청하면 첫 번째 도메인 홈페이지가 표시되지 않습니다.
주요 질문 : 도메인을 모두 이해하기 위해 바니시를 올바르게 구성하는 방법은 무엇입니까?
rus : как корректно заставвить варниш обрабатівать два \ несколько домена \ доменов? 소프트웨어
하드 인본주의 하나를 수집 (10) 매뉴얼 :)이어야한다. 주요 문제 raskomentirovanii 여기에 그 두 가지 페이지 중 하나를 출력 코드의 작은 조각. –
설치 proxy_set_header 호스트 $ 호스트 지침; 상황이 도움이되지 않았다. –