-
Üyelik
29.01.2019
-
Yaş/Cinsiyet
38 / E
-
Meslek
web tasarımı
-
Konum
İstanbul Anadolu
-
Ad Soyad
G** T**
-
Mesajlar
105
-
Beğeniler
104 / 46
-
Ticaret
0, (%0)
Merhaba,
Varnish 5.0 için sürümün dışardan görünmesini engellemeye çalışıyorum.
bulduğum kodları denediğimde işe yaramıyor.
Bulduğum kaynaklar eski 3 yada 4 sürümleri için geçerli kodları vermişler.
5 için bu ayarı nasıl yaparım?
hatta mümkünse yanlış veri döndürebilirim?
alperi
alperperi.com
Kullanıcı
-
Üyelik
23.11.2016
-
Yaş/Cinsiyet
42 / E
-
Meslek
Bilgiişlem
-
Konum
Konya
-
Ad Soyad
A** P**
-
Mesajlar
642
-
Beğeniler
216 / 215
-
Ticaret
4, (%100)
Merhaba,
default.vlc içerisindeki vlc_deliver başlığı altında bulunan ayarları
sub vcl_deliver {
remove resp.http.Via;
remove resp.http.X-Whatever;
remove resp.http.X-Powered-By;
remove resp.http.X-Varnish;
}
şeklinde silebilirsin eğer yeniden tanımlamak istersen
sub vcl_deliver {
set resp.http.Server = "XoX";
set resp.http.X-Powered-By = "Tester";
}
remove silmek için set yeniden tanımlamak için kullanılıyor. Eğer sürüm 5.0 da bu şekilde çalışmazsa ise;
return (deliver);
}
sub vcl_deliver {
unset resp.http.server;
unset resp.http.via;
unset resp.http.x-powered-by;
unset resp.http.x-runtime;
unset resp.http.x-varnish;
return (deliver);
}
örneğindeki gibi unset yaparak halihazırda bulunan ayarları kapatmış olursun. Umarım işine yarar.
1 kişi bu mesajı beğendi.
-
Üyelik
29.01.2019
-
Yaş/Cinsiyet
38 / E
-
Meslek
web tasarımı
-
Konum
İstanbul Anadolu
-
Ad Soyad
G** T**
-
Mesajlar
105
-
Beğeniler
104 / 46
-
Ticaret
0, (%0)
selam @alperi,
cevap gözümden kaçmış yeni gördüm.
denedim işe yaramadı yada ben bir şekilde beceremedim.
kodu ilgili bloğa bir kaç değişik düzende ekledim.
kimilerinde varnish'i restart ettiğimde config hatası veriyor.
alttaki şekilde eklediğimde config hatası vermiyor ama "varnish 5" imzası hala çıkıyor.
(config'i değiştirdikten sonra varnish+nginx+php hepsini restart ettim)
bendeki yapı.
CloudFlare -> varnish -> nginx -> wordpress şeklinde çalışıyor.
vcl 4.0;
backend default {
# .host = "localhost";
.host = "127.0.0.1";
.port = "8080";
}
acl purger {
"localhost";
"ip.v4.adresi";
"ip.v6.adresi";
}
sub vcl_recv {
if (req.method == "PURGE") {
if (!client.ip ~ purger) {
return(synth(405, "This IP is not allowed to send PURGE requests."));
}
return (purge);
}
if (req.restarts == 0) {
if (req.http.X-Forwarded-For) {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.http.Authorization || req.method == "POST") {
return (pass);
}
if (req.url ~ "/feed") {
return (pass);
}
if (req.url ~ "wp-admin|wp-login|xyz") {
return (pass);
}
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-\d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-time-\d+=[^;]+(; )?", "");
if (req.http.cookie == "") {
unset req.http.cookie;
}
}
sub vcl_purge {
set req.method = "GET";
set req.http.X-Purger = "Purged";
return (restart);
}
sub vcl_backend_response {
set beresp.ttl = 12h;
set beresp.grace = 2h;
if (bereq.url !~ "wp-admin|wp-login|product|cart|checkout|my-account|/?remove_item=") {
unset beresp.http.set-cookie;
}
}
sub vcl_deliver {
if (req.http.X-Purger) {
set resp.http.X-Purger = req.http.X-Purger;
}
unset resp.http.server;
unset resp.http.via;
unset resp.http.x-powered-by;
unset resp.http.x-runtime;
unset resp.http.x-varnish;
set resp.http.Server = "birseyler";
set resp.http.X-Powered-By = "baskabirseyler";
}
önerilere açığım.
1 kişi bu mesajı beğendi.
alperi
alperperi.com
Kullanıcı
-
Üyelik
23.11.2016
-
Yaş/Cinsiyet
42 / E
-
Meslek
Bilgiişlem
-
Konum
Konya
-
Ad Soyad
A** P**
-
Mesajlar
642
-
Beğeniler
216 / 215
-
Ticaret
4, (%100)
Biraz araştırdım konuyu varnish sürüm gizlense bile nginx sunucu üst bilgilerini göstermeye devam ediyor.
Örnek Varnish ayarı :
sub vcl_deliver {
# Remove some HTTP-headers:
unset resp.http.Server;
unset resp.http.X-Varnish;
unset resp.http.Via;
unset resp.http.X-Cacheable;
unset resp.http.Age;
return (deliver);
}
Nginx için server üst bilgi gizleme ayarı:
Ngx_security_headers kullanımı (nginx.conf içerisinde)
load_module modules/ngx_http_security_headers_module.so;
http {
...
security_headers on;
...
}
load_module modules/ngx_http_headers_more_filter_module.so;
http {
...
more_clear_headers Server;
...
}
Tamamen Nginx kullanımını gizleme :
sed -i 's@"nginx/"@"-/"@g' src/core/nginx.h
sed -i 's@r->headers_out.server == NULL@0@g' src/http/ngx_http_header_filter_module.c
sed -i 's@r->headers_out.server == NULL@0@g' src/http/v2/ngx_http_v2_filter_module.c
sed -i 's@
nginx@@g' src/http/ngx_http_special_response.c
ayarlar bu şekilde olduğunda sanırım hem varnish hemde nginx sunucu bilgilerini gizliyor. Test etmedim, sonucu buraya yazarsan sevinirim.
1 kişi bu mesajı beğendi.
-
Üyelik
29.01.2019
-
Yaş/Cinsiyet
38 / E
-
Meslek
web tasarımı
-
Konum
İstanbul Anadolu
-
Ad Soyad
G** T**
-
Mesajlar
105
-
Beğeniler
104 / 46
-
Ticaret
0, (%0)
Merhaba @alperi ,
oldukça gecikmişte olsa cevap yazayım.
sistemde parça sayısı çok olunca bir şeylerin güncellenmesi zaman alabiliyor.
Kullanici -> CloudFlare -> Varnish -> Wp-Super Cache -> Nginx şeklinde bir yapı olduğu için ayrıca browserlarında cache'i bazı şeyleri tuttuğu için sorun yaşıyormuşum.
ayarları sizin belirttiğiniz şekilde uygulayıp tüm cacheleri boşalttım sorun yok.
güncellenmesi için biraz sabır gerekli imiş :-)
teşekkürler.
1 kişi bu mesajı beğendi.