我的应用程序正在爬取一个网站。 我使用这个爬虫: https://github.com/rfussien/leboncoin-crawler 在我的开发环境中,延迟是可以接受的(3-4秒),但是在我的prod服务器(ec2 T2.micro Linux / Amazon)上有30个seconde延迟(wait ttfb)。 我在另一个服务器(1&1)testing了相同的代码,并且有一个可接受的延迟(3-4秒)。 所以问题不在代码内部 ,而是关于服务器configuration。 我努力了 : 检查php conf(php.ini) 添加caching到PHP(Zend OPCache) 添加Apache 2不同:接受编docker testing一个t2.medium实例 改变我的实例的区域 我发现这个类似的问题: PHP + Apache很长的等待时间,但我认为我的ec2卷是一个EBS SSD,所以没有访问时间问题。 这个未解决的问题也链接到我的: https : //stackoverflow.com/questions/34299038/deployed-web-application-long-ajax-wait-ttfb-time 在请求期间提取vmstat: [ec2-user@ip-xxx-xx-xx-xx ~]$ vmstat 1 procs ———–memory———- —swap– —–io—- –system– —–cpu—– rb swpd free buff cache si so bi bo in cs us sy […]
我有一个Python Elastic Beanstalk负载平衡应用程序。 以下是用户请求进入Elastic Beanstalk应用程序的path: user -> Elastic Beanstalk ELB -> Elastic Beanstalk mod_wsgi 问题: 在eb deploy新的应用程序版本之后,来自user的前2-4个请求将从ELB生成504个错误。 经过这些〜2-4个生成504的请求,一切都很好! 到处都是200s。 当504s发生时,根据/var/httpd/access_log ,零请求将传递到Elastic Beanstalk mod_wsgi应用程序。 在ELB决定重新开始工作之后,我只看到了200年代。 我已经尝试过的事情没有奏效: 我将Elastic Beanstalk ELB空闲超时增加到了300秒 我将Elastic Beanstalk mod_wsgi apache KeepAliveTimeout增加到了300秒,如下所示: http : //docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html 有人可能会说,“只是和504一起生活!” 但是,实际的问题是,在我的生产环境中, user和Elastic Beanstalk ELB之间有CloudFlare 。 CloudFlare设置为积极caching.css和.js文件,因为我将md5散列添加到静态文件URL。 当这些重要文件的请求失败时,CloudFlare似乎将这些失败caching为404。 对这些文件的进一步请求404,从而打破了每个部署的站点的视觉样式。 再次使用相同的应用程序版本部署Elastic Beanstalk应用程序将修复CloudFlare 404问题。 这不是一个好的解决scheme。 我想继续使用CloudFlare,因为它使得一个优秀的透明CDN,所以摆脱它也不是一个解决scheme。 很难相信我对这个问题一无所知,但是Google,stackoverflow / serverfault和AWS论坛还没有find任何解决scheme,甚至是类似的问题报告。 我希望我对这种行为的描述在这里与某人敲响。 提前致谢。
我正在尝试加载我的团队使用jmeter在AWS ubuntu 14.04上开发和部署的LAMP应用程序。 我们使用AWS CDN来提供静态文件,mysql和apache在同一个主机上。 当只有一个用户在做东西时,响应时间是正常的,根据页面在2到5秒之间。 我的目标是在同一时间使500个连接的用户同时做出回应。 我从less数用户开始,在一个t2.small(1vCPU,2Gb RAM)上使用mod_php和prefork模块,并且只有40个连接用户满意。 一旦有100个,它的响应时间+ 20s就会非常慢。 在尝试了一些SO资源之后,我尝试了使用php-fpm和event module。 performance较好但仍然缓慢; + 15s的任何单个页面。 我决定将服务器升级到M4.2xlarge(8vCPU,32 Gb RAM)。 对于100个连接的用户来说,它performance正常,我很满意,但这是一个昂贵的,我想用最适合的服务器规格来find更好的性能。 无论如何,我试图testing这个M4.2xlarge与330连接用户做东西一致,它变得太慢,每页+ 15~ + 20s。 一直试图调整事件configuration和fpm过程没有运气(在大多数情况下,我有+90℅cpu,但没有足够的内存不被使用,这就是为什么我在那里我们有一个限制)。 我觉得我很亲密,但我做不到。 我会更新我的问题与任何文件,日志或ouptut你会问。
有我的configuration(httpd 2.4): <AuthnProviderAlias ldap zzzldap> LDAPReferrals Off AuthLDAPURL "ldaps://ldap.zzz.com:636/o=zzz.com?uid?sub?(objectClass=*)" AuthLDAPBindDN "uid=zzz,ou=Applications,o=zzz.com" AuthLDAPBindPassword "zzz" </AuthnProviderAlias> <Location /svn> DAV svn SVNParentPath /DATA/svn AuthType Basic AuthName "Subversion repositories" SSLRequireSSL AuthBasicProvider zzzldap <RequireAll> Require valid-user Require ldap-attribute employeeNumber=12345 Require ldap-group cn=yyy,ou=Groups,o=zzz.com </RequireAll> </Location> Require valid-user是工作。 但是ldap-attribite,ldap-filter,ldap-group不起作用 – 在日志中一直denied 。 我花了很多时间,但不知道发生了什么。 这是我的日志的例子: [Tue Sep 25 16:42:26.772006 2012] [authz_core:debug] [pid 23087:tid […]
我正在使用Puppetlabs / Apache来configurationApache。 在主傀儡文件中,我调用并configuration它: class { '::apache': } class { '::apache::mod::fastcgi': } apache::vhost { "${::fqdn} non-ssl": servername => $::fqdn, port => '2222', docroot => "/var/www/${root}", priority => 10, } apache::mod::fastcgi清单可以无缝工作…有一个缺点:PHP以某种方式仍然在(cli)模式下运行: vagrant@wp:/etc/apache2/mods-enabled$ php -v PHP 5.5.12-1+deb.sury.org~precise+1 (cli) (built: May 8 2014 21:04:38) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies […]
如果我简单地使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次,证书链就会被打破。 我可以使用从不同的中间CA证书颁发的RSA和ECC证书吗? ================== 更新:OpenSSL 1.0.2解决问题。 只需使用“SSLCertificateFile”和“SSLCertificateKeyFile”两次。 请注意,“SSLCertificateFile”应该是证书的整个链。
我试图设置一个情况,我可以FTP到我的Linux CentOS 7服务器,并从我的Windows 7系统更新网站文件。 在这一点上,我可以使用vsftp(/ home / robert)来FTP到我的用户文件夹,并且Apache似乎可以用于默认网站(/ var / www / html)。 我为8080端口创build了一个虚拟主机,如果我将它指向/ var / www / 8080 / public_html,它可以正常工作,但只要我将它指向/ home / robert / public_html,它就会返回403 Forbidden。 您无权访问/在此服务器上。 apache错误日志显示 [Wed Mar 18 16:12:27.546621 2015] [core:error] [pid 21204] (13)Permission denied: [client 192.168.1.66:57090] AH00035: access to / denied (filesystem path '/home/robert') because search permissions are missing on […]
我在Apache 2.4.25上有一个虚拟主机,通过mod_proxy_fcgi连接PHP-FPM 7.1.4,如下所示: <VirtualHost *:80> ServerName example.com DocumentRoot /srv/www/example.com <Directory /srv/www/example.com> AllowOverride All Require all granted </Directory> SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 <FilesMatch ".+\.ph(p[3457]?|t|tml)$"> SetHandler "proxy:unix:/run/php/example.sock|fcgi://localhost" </FilesMatch> </VirtualHost> 大多数应用程序在这个设置上都能正常工作,但是有一个应用程序使用PATH_INFO来提取请求。 该应用程序在它的.htaccess中有这样的东西: RewriteEngine On RewriteCond $1 ^index\.php RewriteRule ^(.*)$ – [PT,L] RewriteRule ^(.*)$ index.php/$1 [PT,L] 简而言之,所有不是index.php东西都应该作为一个path传递给它。 访问URL http://example.com/index.php/test工程并按预期显示[PATH_INFO] => /test ,但访问http://example.com/test与 AH01071: Got error 'Primary script unknown\n' 为mod_rewrite和mod_proxy_fcgi设置LogLevel […]
我已经build立了一个Ubuntu的(14.04.2)apache2(2.4.7)服务器的SSL,但似乎没有find证书。 Ubuntu运行在具有静态IP的EC2实例上,启用了443端口,域名为theaudioserver.com,DNSlogging为该静态IP。 以下是我如何设置我的服务器: 创build键: openssl genrsa 2048 > privatekey.pem 生成的证书请求: openssl req -new -key privatekey.pem -out csr.pem 用csr购买了一个CA SSL证书,并将密钥保存到server.crt和server_bundle.crt 在/ etc / apache2 / sites-available中添加ssl.conf文件,该文件configuration为SSL: SSLStaplingCache shmcb:/tmp/stapling_cache(128000) <VirtualHost *:443> SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff SSLCompression […]
在Apache 2.4中,你可以使用以下方法将HTTP连接代理到本地Unix套接字: [1] ProxyPass unix:/path/to/app.sock|http://example.com/app/name 您可以使用以下方法将代理WebSocket连接反向代理到本地TCP套接字: [2] ProxyPass ws://127.0.0.1:12345/app/name 但是,你怎么能反向代理一个WebSocket连接到Unix套接字? [☹]