在过去的几天里,我的网站performance一直很不好,查询花了很多时间来执行。 我的CPU使用率在本周四次达到100%左右。 这里是top的输出 top – 00:08:03 up 3 days, 21:47, 2 users, load average: 6.06, 1.95, 0.84 Tasks: 92 total, 2 running, 90 sleeping, 0 stopped, 0 zombie %Cpu(s): 86.1 us, 12.9 sy, 0.0 ni, 0.0 id, 0.0 wa, 1.0 hi, 0.0 si, 0.0 st KiB Mem: 1017948 total, 773520 used, 244428 free, 107200 buffers […]
我想从一个CGI脚本访问用户的目录。 我成功地在目录上设置了acl,但是当试图访问该目录时脚本仍然获得“权限被拒绝”。 我su'd阿帕奇,并有相同的问题(所以它不是一个networking服务器/脚本问题)。 我错过了什么? #getfacl / home / pmedrano / Maildir / cur / getfacl:从绝对path名中删除前导'/' #file:home / pmedrano / Maildir / cur / #所有者:pmedrano #组:pmedrano 用户:: RWX 用户:阿帕奇:RX 组:: – – 组:阿帕奇:RX 面具:: RX 其他:: – – 默认:用户:: RWX 默认:用户:阿帕奇:RX 默认:组:: — 默认:组:阿帕奇:RX 默认:面膜:: RX 默认:其他:: — #su -s / bin / bash apache bash-4.2 […]
我在Debian Wheezy上用Apache2和PHP5.4运行suPHP。 我发现.phps文件不会显示,访问将导致一个403页面。 chmod / chown / chgrp相同的文件将被允许执行。 我的/etc/apache2/mods-enabled/suphp.conf看起来像这样: <IfModule mod_suphp.c> <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-suphp </FilesMatch> suPHP_AddHandler application/x-httpd-suphp # Added to try to allow phps files suPHP_PHPPath /usr/bin/ AddType application/x-httpd-php-source .phps <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> suPHP_AddHandler application/x-httpd-php-source <Directory /> suPHP_Engine on </Directory> ….. 该文件具有权限-rwxr-xr-x和正确的所有者/组。 /var/log/suphp/suphp.log不显示任何条目。 错误消息似乎直接来自Apache本身: Forbidden You don't have permission to access /~user/script.phps […]
我使用下面的教程在Ubuntu 14.0.4上安装了postgresql的osqa作为后端 http://wiki.osqa.net/display/docs/ubuntu+12.04,+django+1.3,+mod_wsgi,+virtual_env,+postgresql 要求创build一个虚拟环境。 我做了同样的,得到500服务器错误。 因此,我在settings_local.py中设置了debug = True,并在显示mod_wsgi错误的apache错误日志文件中出现以下错误。 [Mon Nov 24 11:26:33.823663 2014] [:error] [pid 6389:tid 3034110784] [remote 192.168.227.129:15031] mod_wsgi (pid=6389): Exception occurred processing WSGI script '/srv/osqa.1/osqa/osqa.wsgi'. [Mon Nov 24 11:26:33.823844 2014] [:error] [pid 6389:tid 3034110784] [remote 192.168.227.129:15031] Traceback (most recent call last): [Mon Nov 24 11:26:33.823882 2014] [:error] [pid 6389:tid 3034110784] [remote 192.168.227.129:15031] File […]
在处理应用程序重写时,我想保留旧的应用程序webroot文件作为回退,当没有find新的文件。 有2个应用程序: <VirtualHost *:80> ServerName legacy.dev DocumentRoot /www/legacy/webroot </VirtualHost> <VirtualHost *:80> ServerName new.dev DocumentRoot /www/new/webroot </VirtualHost> 如何设置new.dev VirtualHost来检索DocumentRoot中存在的文件,但是如果找不到文件,请检索legacy.dev DocumentRoot中的文件?
我在我的DMZ中使用apache 2.2.4作为反向代理服务器。 当两台BalancerMember服务器启动时,代理平衡器看起来效果很好。 但是,如果我closures一个,每次我加载一个页面,大概需要30-45秒才能在我的网站上加载任何内容。 这是我的configuration: ServerName mywebsite.com ProxyRequests Off <Proxy *> Order deny, allow Allow from all </Proxy> <Proxy balancer://mycluster> BalancerMember http://10.10.10.10:80/outside loadfactor=1 retry=60 BalancerMember http://10.10.10.11:80/outside loadfactor=1 retry=60 </Proxy> ProxyPass /outside balancer://mycluster/ ProxyPassReverse /outside balancer://mycluster/ ProxyPass /balancer-manager ! <Location /balancer-manager> SetHandler balancer-manager </Location> 服务器充当位于其后的REST服务的反向代理。 当我加载Web应用程序时,它会多次调用REST服务,所以我不知道是否也可能导致缓慢,因为代理服务器一次碰到很多请求。
我的服务器每天至less挂起一次。 它依然如此,直到我重新启动Tomcat。 我不确定哪个部分会导致这个问题,所以我正在尝试几个假设: 我的网站是通过Google的PageSpeed服务的,所以我怀疑我正在遭受DDoS攻击。 当它挂起时,我必须重新启动apache2和tomcat。 所以我不知道是哪一个造成这个问题。 当服务器挂起时,我检查mysql的进程列表,并且发现有十几个空闲连接。 这意味着数据库不会超载。 当服务器挂起时,我看到像这样的一些错误。 所以这可能是这个问题在我的Java代码和MySQL之间的连接: java.sql.SQLException: Operation not allowed after ResultSet closed at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870) at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:734) at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:778) at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:4419) at com.mypackage.SqlUtils.getResultMapList(SqlUtils.java:66) 我从数据库检索结果的集中代码是: public List<ResultMap> getResultMapList(String sql) { List<ResultMap> rows = new LinkedList<>(); try (Connection conn = getConnection(); ResultSet res = conn.createStatement().executeQuery(sql)) { while […]
我正在使用Apache和Varnish安装。 访问我的子文件夹主页时没有在URL末尾input斜杠时遇到问题,redirect到:8080。 这将redirect到http://www.example.com:8080/subfolder/ 但是,如果我访问http://www.example.com/subfolder/它加载得很好。 我读了解决这个问题,对于NGINX用户,只port_in_redirect off; 如何在Apache中解决它?
我正在计划一个NVA服务器系统(Nginx-Varnish-Apache),请求按照这个顺序进行路由。 Apache将服务WordPress CMS或类似的。 我想知道在哪里应用额外的重写规则(如添加自定义重写手动configuration)。 应该重写在Nginx端还是Apache端? 哪个更容易实现,哪个更好? 还是应该重写在光油? 正如我所看到的,所有重写都可以在Apache中完成,因为Varnish将按原样提供这些重写的请求,从而在提供页面之前降低处理(?)的需求。 我是对的,还是在请求页面清除(从Apache获取页面)之前重写呢? 这要求服务器实际检查并对每个请求进行重写。 但是这样所有的重写将是“即时的”,而不需要在Varnish清除caching。 例1: 我有一个WordPress的多站点与子域安装(子站点去foo.domain.com , bar.domain.com , baz.domain.com等)。 多站点根站点应该驻留在www.domain.com ,但实际的内容可以在domain.com (不需要www )。 WordPress本身处理子网站的子域映射(数据库表切换),但是无www到www重写应该手动完成。 在哪里重写呢? 例2: 我在后台有一个特定的模板,有时可能会被重写,有时候不会。 让我们说它的www.domain.com/offer/12345/?available=0 ,有时我们可能要重写URLredirect到一个模板www.domain.com/offers有关不可用的数据。 这个重写会来来去去,取决于网站是否有不可用的报价情况的内容。 在Varnish之前或之后,这种重写会更好吗? (我知道这个redirect应该在网站的内部逻辑中完成以实现自动化,但是为了这个例子,我们假设它应该被服务器自己重写)。
我试图在puppetlabs / apache模块的centos 6.5盒子上设置suPHP。 Apacheconfiguration file { "/var/www/vhosts": ensure => "directory", owner => "root", group => "root", mode => 755, } class { '::apache': require => File['/var/www/vhosts'], } include ::apache::mod::suphp Vhosts例子 apache::vhost { $site: port => '80', serveraliases => [ $root, "www.${site}", "development.${site}", "www.development.${site}", ], options => ['Indexes', 'FollowSymlinks'], suphp_engine => 'on', suphp_addhandler => 'x-httpd-suphp', […]