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.