[英]Apache 2.4.6 Https Page slowness issue
我配置了Apache 2.4服務器,該服務器用作tomcat的代理服務器。 我的Tomcat上部署了兩個(也許更多)應用程序,並且都只能使用apache Web服務器IP和端口(443-https)進行訪問。
但是,每當我嘗試訪問Login.htm頁面時,加載單個頁面花了將近10到15秒。 當我嘗試使用用戶名和密碼登錄時,這里的歡迎頁面需要1分20秒才能加載。
但是,在我的本地環境(本地IP和端口(8080-http))中,登錄頁面花了1秒,歡迎頁面花了3-4秒。 注意-我的本地環境中沒有配置apache網絡服務器。
我在apache網絡服務器上嘗試了許多性能調整方法,但沒有一個對我有用。 我不確定這里缺少什么。 任何幫助表示贊賞。 提前致謝。
以下是我的apache服務器配置。
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost <APP_SERVER_IP_ADDR>:443>
ServerName <APP_SERVER_IP_ADDR>
ServerAlias <APP_SERVER_IP_ADDR>
ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log
LogLevel info
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ProxyRequests Off
SSLProxyEngine On
ProxyPreserveHost On
RewriteEngine On
HostnameLookups off
<Proxy <APP_SERVER_IP_ADDR>:443>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /application1 http://<WEB_SERVER_IP_ADDR>:9660/application1
ProxyPassReverse /application1 http://<WEB_SERVER_IP_ADDR>:9660/application1
ProxyPass /application2 http://<WEB_SERVER_IP_ADDR>:9660/application2
ProxyPassReverse /application2 http://<WEB_SERVER_IP_ADDR>:9660/application2
<Location /proxy/>
ProxyPassReverse /
Order deny,allow
Allow from all
</Location>
Header edit Location ^http://<APP_SERVER_IP_ADDR>/ https://<APP_SERVER_IP_ADDR>/
Timeout 10
ProxyTimeout 10
ProxyBadHeader Ignore
</VirtualHost>
在深入研究apache API之后,我終於發現我的應用程序存在一個大問題。
我們正在嘗試在生產系統中實現3層架構。 當我們使用從Web服務器到App Server的apache Web服務器(作為代理服務器)時,有許多Js,CSS和圖像文件從我的應用程序傳輸。
當用戶從WebServer請求Login.htm(或訪問任何其他頁面)時,我的應用程序服務器將響應此請求。 由於有許多Js,CSS和圖像文件從App傳輸到Web,最后從Web傳輸到瀏覽器,因此Signle請求耗時約15秒。
為了克服這種情況,我將所有與Js,CSS和圖像相關的文件移至Web服務器。 因此,所有與HTML相關的內容現在都從Web服務器而不是從應用程序服務器加載。 為此,我在ssl.conf中添加了以下幾行
DocumentRoot "/var/www/html"
ProxyPass /application1/resources !
DocumentRoot中存在的路徑是我的Web服務器的上下文路徑,在其中我創建了“ application1”目錄,並添加了“ resources”目錄,其中包含所有js,css和圖像文件。
現在,我的應用程序需要4-7秒來加載Login.htm頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.