Apache 2.4.6 Https Page慢度问题

时间:2017-03-29 10:15:40

标签: java apache performance tomcat webserver

我配置了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>

1 个答案:

答案 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页面。