Articles of apache 2.4

如何限制Apache 2.4使用的内存总量(不是每个进程)

有没有办法限制Apache使用的内存总量(而不是每个进程)? 我有一个运行PHP和MySQL的Web服务器。 我需要1G的PHP内存限制或一些脚本将失败(dompdf / phpexcel)。 问题是有时候人们同时运行这些脚本。 Apache使用几GB的内存,MySQL是由于内存不足而死亡的。 我想将它限制为4 GB,所以如果同时调用5个以上的脚本,它们将无法运行。 我看了一下RLimitMEM,但它是每个进程。 在事件MPM上,我在Centos 6上使用Apache 2.4。

当apachectl优雅时,apache采取旧的openssl库

由于心脏病的脆弱性,我已经重新编译了非易受攻击的最新版本的openssl(由于一些依赖性问题,我不得不保留旧的易受攻击的openssl)。 它运行良好,当mydomain.com heartbleedtesting它说,“似乎是固定的或不受影响”。 但是,如果我做apachectl graceful和考验heartbleed它说mydomain.com是脆弱的。 如果我做/usr/local/etc/rc.d/apache2 restart或apachectl restart没有问题。 1)我的问题是,为什么只需要apachectl graceful需要旧的openssl库? 2)访问openssl库时, apachectl restart和apachectl graceful什么区别?

RewriteRule不正确重写url

我有以下虚拟主机文件: <IfModule !wsgi_module> LoadModule wsgi_module modules/mod_wsgi.so WSGISocketPrefix run/wsgi </IfModule> <VirtualHost *:80> RewriteEngine On RewriteLog "/var/log/httpd/rewrite_log" RewriteLogLevel 1 RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] </VirtualHost> <VirtualHost *:443> ServerName https://tendril-api.dev.adnxs.net ServerAlias 06.tendril-api.dev.nym2.adnexus.net/api RewriteEngine on RewriteRule ^docs$ docs/ [R] … # SSL & WSGI Setup </VirtualHost> 出于某种原因,我的docs重写规则根本没有生效。 为什么是这样? 我的HTTP – > HTTPS重写规则在*:80 VirtualHost中正常工作。 我正在做一些非常相似的事情。 这是否与在不同的VirtualHosts中有两个不同的重写规则有关? 有任何想法吗?

Ubuntu 14.04上的所有VirtualHost的RewriteRule?

在a2enmod rewrite ,我写了文件/etc/apache2/conf-available/myspecific_rewrite.conf : RewriteEngine on RewriteRule ^/test(/.*)?$ http://anothersite.tld/test$1 [R] RewriteRule ^/test2(/.*)?$ http://anothersite2.tld/test [R] 然后我在/etc/apache2/conf-enabled创build了a2enconf myspecific_rewrite和正确的符号链接。 问题是这个conf不起作用:重写是不活跃的。 我想要重写所有我的虚拟主机。 我写的这个文件定义了一个<VirtualHost>之外的RewriteRule …有没有办法让它工作?

为apache2虚拟主机使用不同的默认文档

我使用apache2在ubuntu 14服务器上设置了几个站点。 我复制000-default.conf并创build了一个site1.conf。 然后我改变了一些设置,重新加载apache2,现在几乎一切正常。 除了我在DirectoryIndex设置中的默认文档没有被遵守。 我的site1.conf看起来类似于这个: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName site1.com DocumentRoot /var/www/site1 ServerAlias *.site1.com DirectoryIndex one.php </VirtualHost> 但我的问题是,访问http://site1.com/仍然显示index.html而不是one.php我想要显示。 请注意,一旦我得到这个工作,我想设置site2.com,并使用它的默认文件two.php。 我猜DirectoryIndex是一个在VirtualHost中不起作用的设置,而是在apache2.conf中的一个全局设置。 我search这些东西,找不到一个好的解释或办法。

Apache优化

我试图正确设置aws实例EC2 m3 Large(7.5 Gio或RAM)上的apache安装。 一周一次或两次,apache崩溃的消息:[Thu Aug 14 12:38:33.552250 2014] [mpm_prefork:error] [pid 6279] AH00161:服务器达到MaxRequestWorkers设置,考虑提高MaxRequestWorkers设置 我的问题是,我应该如何设置我的httpd.conf? 现在,我总是有至less4.5 Gio RAM免费。 我想尽我所能使用我的硬件,并防止Apache突然崩溃。 这里是我的Apache设置: <IfModule mpm_prefork_module> StartServers 20 MinSpareServers 15 MaxSpareServers 30 MaxRequestWorkers 80 MaxConnectionsPerChild 1000 </IfModule> KeepAlive On KeepAliveTimeout 2 MaxKeepAliveRequests 100 我的请求是平均25Mb,我允许php做125 MB的职位 有人可以build议我吗? 非常感谢。

是否有可能重新启动服务器而不访问其SSL密钥?

我有一个技术部门的服务器(具有root访问权)在一些子域上运行一个web应用程序应用程序。 但该应用程序需要validation。 所以我请求了域的SSL密钥。 技术小组不愿意给我钥匙 – 这是可以理解的。 我需要不时地重新启动服务器。 是否可以为非root用户configuration权限,以便能够重新启动服务器,但无法访问其SSL密钥? 服务器可能是apache或nginx。 如果我运行两个没有root权限的任何一个,我得到以下内容: 阿帕奇: AH00526: Syntax error on line 35 of /etc/apache2/sites-enabled/canvas-misis-ru.conf: SSLCertificateKeyFile: file '/etc/ssl/private/ssl-cert-snakeoil.key' does not exist or is empty nginx的: nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) 2014/09/21 17:08:55 [warn] 16805#0: the "user" directive makes sense only if the […]

使用nginx作为反向代理时,Apache上的REMOTE_ADDR和SERVER_ADDR错误

我在Mac OS X上,在VirtualBox中运行Ubuntu。 Mac OS可以在IP 192.168.0.100和Ubuntu 192.168.0.123(使用VirtualBoxnetworking设置中的“桥接适配器”选项)的本地networking中访问。 在Ubuntu安装中,我有nginx(端口80)作为Apache 2.4(端口8081)的反向代理。 这工作正常,如果我在Mac OS中打开浏览器并指向192.168.0.123,它将通过nginx打开Apache提供的文件。 问题是,即使我已经启用了RPAF模块,我在Apache上获得了服务器和远程IP地址的意外值。 从Mac浏览器访问时,我期望的值是: SERVER_ADDR = 192.168.0.123 # Apache server IP, which is the Ubuntu IP REMOTE_ADDR = 192.168.0.100 # The Mac OS X IP 但是,如果我将nginx设置为proxy_pass 192.168.0.123:8081我会得到: SERVER_ADDR = 192.168.0.123 REMOTE_ADDR = 198.168.0.123 设置proxy_pass 127.0.0.1:8081给我正确的远程地址(191.168.0.100),但127.0.0.1作为服务器地址。 任何想法如何获得预期的结果? ( 编辑 )我使用默认的RPAF设置: <IfModule rpaf_module> RPAF_Enable On RPAF_ProxyIPs 127.0.0.1 RPAF_SetHostName […]

OpenSSL PositiveSSL证书不可信连接

我买了一个SSL证书,我不能得到它的function。 我得到This Connection is Untrusted错误在Firefox。 我相信这是由于我的.crt文件不完整/错误。 我的.crt是使用以下命令生成的: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 我得到的是一大块数据。 它有一个开始标题和一个结束。 认为这是不正确的原因是由于我浏览的示例文件。 例1 , 例2 。 这些信息比我在文件中的大量数据要多得多。 我遇到了由于我的.crt文件的问题? 还有什么可能导致错误。 我已经尽了最大的努力find一些答案,但是我发现的答案一直不适用于我的问题或与我的问题无关。 我在.conf文件中启用了SSLEngine ,并启用了ssl mod。 我对安装SSL证书是全新的,我以前从来没有尝试过这样的事情,只是你知道。 我运行在VPS上的Ubuntu 14.04 64位。 当我购买我的域名时,证书是活动的并且通过Namecheap从PositiveSSL购买。

无法停止www。 从redirect到HTTPS://

我的SSL证书最近过期了,我一直在试图暂时禁用SSL,直到我可以重新获得它的东西继续redirect的子域WWW。 到HTTPS:// 这不是.htaccess文件,httpd.conf是使用VirtualHost为不安全连接build立的: <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/example.com/public_html ServerName www.example.com ServerAlias example.com ErrorLog /var/www/example.com/error.log CustomLog /var/www/example.com/access.log common <Directory "/var/www/example.com"> AllowOverride All </Directory> </VirtualHost> example.com工作正常,但是如果我访问www.example.com它redirect到HTTPS:// 还有什么呢?