Web erişim hızını iyileştirmek için dinamik ve statik ayrımı

Menşei

Bazı insanlar kahve içmenin zarif ve sarımsak yemenin bayağı olduğunu düşünerek beni her zaman kahve içmeye götürmezler, neyse ki bayağılık olmadan zarafet olmaz. . . Çok kabayım, ne olursa olsun bana vur. . . . Haha

Hareket ve statik ayırma, öyleyse dinamik nedir ve statik nedir?

Bir web sayfasına erişirken, tarayıcının html dosyaları, css stil sayfaları, js komut dosyaları, resimler ve akış medyası ve diğer dosyalar dahil olmak üzere çeşitli dosyaları yükleyeceğini her zaman göreceğiz. Bunlar aslında statiktir Sunucudaki dosyalar, Dinamik olarak oluşturulması gerekmeyen dosyalar statik dosyalardır . Peki dinamik dosya nedir? Örneğin, java tarafından yazılan bir jsp dosyasının bir derleyici tarafından bir bayt kodu dosyasına derlenmesi ve ardından java sanal makinesinde çalıştırılması gerekir.Çalıştıktan sonra istemciye bir yanıt döndürülür.Bazen verilerin veritabanından alınması gerekir. Daha sonra derlenmesi gereken bu tür dosyalara dinamik dosya adı verilir. .

Dinamik dosyaların işleme hızı, statik dosyalardan N kat daha yavaştır. Yavaşlık nedir? Öncelikle dinamik dosyaların derlenmesi gerekir ki bu da zaman alıcıdır.Dinamik dosyaların veri tabanına bağlanması gerekir ki bu da zaman alıcıdır.Dinamik dosyaların zaman alan http yanıtları halinde düzenlenmesi gerekir.Java işlemine göre, ardından url'ye göre, jsp dosyasını bulun ve jsp dosyasını Sunucu uygulaması dosyası daha sonra bir sınıf dosyası olarak oluşturulur ve ardından jvm üzerinde çalıştırılır. Jvm'nin ek sınıf dosyaları yüklemesi, ardından bir yanıt oluşturması ve bunu sunucu uygulamasına geri döndürmesi ve ardından istemciye geri döndürmesi gerekebilir.

Dinamik ve statik ayırma kullanılırken, genel olarak kullanılan model aşağıdaki gibidir:

Dinamik ve statik ayırmayı kullanırken, bazı statik dosyaları dinamik dosyalardan ayırmanız gerekir, böylece nginx statik istekleri işlemek için kullanılır ve tomcat dinamik istekleri işlemek için kullanılır, bu da işlem hızını büyük ölçüde artıracaktır.

Nginx ve httpd, son derece verimli olan ve doğrudan nginx tarafından yanıtlanan statik dosyaları işlemek için özel olarak kullanılır, bu da arka uca yönlendirme sürecini azaltır; dinamik içeriği ve statik içeriği ayırmak, kaynak kullanımını ve nginx performansını iyileştirebilir. Ayrıca tomcat'i daha az meşgul hale getirir ve dinamik sunucu makineleri, javada çeşitli yöntemlerle nesnelerin kurtarılması ve yığın belleğin kurtarılması gibi performansı tüketir.

Dinamik ve statik bir ortam oluşturun

Dinamik ve statik bir ortam oluşturmak için nginx'i yüklemeniz, jdk'yi kurmanız ve ardından tomcat'i yüklemeniz gerekir. Özel adımlar aşağıdaki gibidir:

Nginx'i derleyin ve kurun:

# ./configure prefix = / usr / local / nginx with-http_ssl_module with-http_stub_status_module with-pcre

# make install

# / usr / local / nginx / sbin / nginx (başlangıç nginx)

# netstat -tnlp | grep nginx (dinleme bağlantı noktasını kontrol edin ve teste erişmek için tarayıcıyı kullanın)

tcp 00 0.0.0.0:800.0.0.0:* DİNLE 13933 / nginx

Jdk'yi yükleyin:

# rpm -ivh jdk-8u144-linux-x64.rpm

Hazırlanıyor ... #########################################

1: jdk1.8.0_144 ##########################################

JAR dosyalarını paketten çıkarma ...

tools.jar ...

plugin.jar ...

javaws.jar ...

deploy.jar ...

rt.jar ...

jsse.jar ...

charsets.jar ...

localedata.jar ...

Java ortam değişkenlerini yapılandırın:

# echo "dışa aktar JAVA_HOME = / usr / java / en son" > /etc/profile.d/java.sh

# echo "dışa aktarma PATH = $ JAVA_HOME / bin: $ PATH" > > /etc/profile.d/java.sh

# cat /etc/profile.d/java.sh

dışa aktar JAVA_HOME = / usr / java / latest

dışa aktarma PATH = / bin: / usr / local / sbin: / usr / local / bin: / sbin: / bin: / usr / sbin: / usr / bin: / root / bin

Jdk ve ortam değişkenlerinin başarılı olup olmadığını test edin:

Tomcat'i yükleyin:

# tar -xf apache-tomcat-8.5.20.tar.gz -C / usr / local /

l # ln -sv /usr/local/apache-tomcat-8.5.20/ / usr / local / tomcat

"/ usr / local / tomcat- > `/usr/local/apache-tomcat-8.5.20/

Tomcat ortam değişkenlerini yapılandırın:

# vim /etc/profile.d/tomcat.sh

# kedi! $

cat /etc/profile.d/tomcat.sh

CATALINA_HOME = / usr / local / tomcat dışa aktar

dışa aktarma PATH = $ CATALINA_HOME / bin: $ PATH

Tomcat'in başarıyla yüklenip yüklenmediğini test edin:

# netstat -tnlp | grep java (tarayıcı eriştiğinde, erişim için bağlantı noktası numarasını eklemeyi unutmayın)

tcp 00 ::: 8080 ::: * DİNLE 1125 / java

tcp 00 :: ffff: 127.0.0.1: 8005 ::: * LISTEN 1125 / java

tcp 00 ::: 8009 ::: * DİNLE 1125 / java

Dinamik dosyalar oluşturun

Java'nın dizin hiyerarşisine göre, aşağıdaki gibi basit bir sayfa yazın:

# mkdir kel

# cd kel

# ls -l

toplam 0

# mkdir {META-INF, WEB-INF, sınıflar, lib}

# vim index.jsp

# kedi index.jsp

< % @ sayfa dili = java% >

< % @ page import = java.util. *% >

< html >

< baş >

< Başlık > JAVA SAYFASI < /Başlık >

< / kafa >

< vücut >

< % out.println ("Merhaba, Dünya");% >

< /vücut >

< / html >

# ls -l

toplam 20

drwxr-xr-x 2 kök kök 4096 Eylül 2014:46 sınıflar

-rw-r r 1 kök kök 201 Eylül 2014:46 index.jsp

drwxr-xr-x 2 kök kök 4096 Eylül 2014:46 lib

drwxr-xr-x 2 kök kök 4096 Eylül 2014:46 META-INF

drwxr-xr-x 2 kök kök 4096 Eylül 2014:46 WEB-INF

Tomcat yapılandırma dosyası server.xml'yi değiştirin (bir sanal ana bilgisayar ekleyin, ana bilgisayar adı www.kel.com ve varsayılan yol webapps altındaki kel dizinidir):

< Ana bilgisayar adı = www.kel.com appBase = webapps unpackWARS = true autoDeploy = true >

< Bağlam yolu = docBase = kel yeniden yüklenebilir = doğru / >

< / Host >

Test ziyareti:

# grep www.kel.com / etc / hosts (Ana bilgisayar adı çözümlemesini ayarlayın)

192.168.1.238 www.kel.com

# curl (Erişmek için curl kullanın)

< html >

< baş >

< Başlık > JAVA SAYFASI < /Başlık >

< / kafa >

< vücut >

Selam Dünya

< /vücut >

< / html >

Nginx'i yapılandırın

Ana bilgisayar adı çözümlemesini yapılandırın:

# grep www.kel.com / etc / hosts

192.168.1.237 www.kel.com

# ls -l nginx.conf (nginx yapılandırma dosyasını değiştirin, dinamik isteği iletin, yani istek jsp dosya sonekiyle veya do tomcat'e, çünkü sanal bir ana bilgisayar, ana bilgisayar adı url'ye yazılmalıdır ve statik sayfa nginx'te İşleniyor, statik sayfa html yolunun altında)

-rw-r r 1 kök kök 2727 Eylül 2015:09 nginx.conf

sunucu_adı www.kel.com;

#charset koi8-r;

#access_log günlükleri / host.access.log main;

yer / {

kök html;

index index.html index.htm;

}

konum ~ * \. (jsp | do) $ {

proxy_pass

}

Statik dosyalara erişimi test etmek için statik dosyaları nginx'in html dizinine yükleyin:

# ls -l html / 1.jpg

-rw-r r 1 kök kök 25854 Eylül 2015:13 html / 1.jpg

Statik dosya erişimini test etmek için nginx sunucusunu ziyaret edin:

Dinamik sayfa erişimini test etmek için nginx sunucusunu ziyaret edin:

sonuç olarak

Genel olarak, dinamik ve statik ayrımı görece basittir.Ön uç proxy sunucusu statik isteklere doğrudan yanıt verir ve ön uç proxy sunucusu dinamik istekleri arka uç tomcat sunucusuna iletir.

Yukarıdakinin deneysel bir ortam olduğuna dikkat edin. Tomcat'i çalıştıran kullanıcı, doğrudan kök kullanıcıdır. Üretimde, tomcat kullanıcıları gibi oturum açamayan diğer kullanıcılar için değiştirilmelidir.

Zafer Kralı'nın en zor büyük hamlesi, netizenler dedi ki, ilki hiç boşaltılmadı
önceki
Milli Eğitim Bakanlığı: 2017'de yayınlanan yeni eklenen doktora ve yüksek lisans yetkilendirme noktalarının listesi
Sonraki
Yaz ortasında cep telefonu şarjı yavaşlıyor mu? Aşk makinesini soğutmak için kullanın
Nirvana örümcek olarak yeniden doğdu
Kodiak ve Tiguan L, Volkswagen veya Skoda'yı seçin
Glory of Kings'in çapasının Q versiyonu hakkında son söz sizde! Balıklarla savaşmak için yaratıcı ve beyin fırtınası, zengin ödüller
Nanfu kablosuz hızlı şarjın arkasında biraz serinlik vardır, böylece şarj işlemi sadece daha hızlı değildir
Yapay zekanın hızlandırılmış gelişimi ve Moore Yasasının yavaşlaması 7nm eFPGA'nın tasarımını nasıl etkiler?
Kubernetes kalıcı depolaması bir sorundur, çözümler nelerdir?
Güç istikrarlı bir şekilde iyileştirildi, Haval H6 Coupe kırmızı etiketi test edildi
Zafer Kralı: Etli Ake'yi gördün mü? 1 vuruş 5 ikna etme, çıtır cilde hala üç kez vur
Nokia X6 canlı deneyimi: Snapdragon 636 + özel şekilli ekran, yalnızca 1.299 yuan
Domuz yeminden yola çıkan New Hope Group, önce bir elektronik fabrikası kurmak istedi
Tam Bağlantı İzleme: Çözümlere Genel Bakış ve Karşılaştırma
To Top