我配置了Apache 2.4服务器,它用作我的tomcat的代理服务器。我的Tomcat&部署了两个(可能更多)应用程序。两者都只能使用apache Web服务器IP和端口(443-https)访问。
但是每当我尝试访问Login.htm页面时,加载一个页面花了将近10-15秒。当我尝试使用用户名&登录时密码,这里欢迎页面需要1分20秒才能加载。
然而,在我的本地环境(本地IP和端口(8080-http))中,登录页面花了1秒钟。欢迎页面3-4秒。注 - 我的本地环境中没有配置apache Web服务器。
我在我的apache web服务器上尝试了很多性能调优方法,但没有一个能为我工作。我不确定这里缺少什么。任何帮助赞赏。 提前谢谢。
以下是我的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>
答案 0 :(得分:0)
在深入挖掘apache API后,我终于发现我的应用程序存在很大问题。
我们正在尝试在我们的生产系统中实施3层架构。由于我们使用从Web服务器到App Server的apache Web服务器(作为代理服务器),因此从我的应用程序传输了大量的Js,CSS和图像文件。
当用户从WebServer请求Login.htm(或访问任何其他页面)时,我的应用服务器将响应此请求。由于有很多J,CSS和图像文件从App传输到Web,最后从Web传输到浏览器,因此签名请求大约需要15秒。
为了克服这种情况,我将所有Js,CSS和图像相关文件移动到Web服务器。所以所有HTML相关的东西现在从Web服务器而不是从app服务器加载。为此,我在ssl.conf
中添加了以下行$statement = $this->entityManager->getConnection()->prepare($sql);
$statement->execute();
// the counter of rows which are updated
$counter = $statement->rowCount();
DocumentRoot中存在的路径是我的Web服务器的上下文路径,我在其中创建了&#39; application1&#39;目录和添加的资源&#39;所有js,css和图像文件都存在的目录。
现在我的应用程序需要4-7秒来加载Login.htm页面。