Articles of apache 2.4

如何在GNU / Linux上以每虚拟主机为基础监视PHP站点的资源使用情况?

使用prefork MPM在RHEL上通过apache2.4 / mod_php运行一堆PHP站点。 我的阿帕奇孩子正在使用公平的内存和大量的CPU。 我希望能够在每个虚拟主机的基础上对RAM / CPU的使用进行分类。 我的一个想法是使用PHP-FPM并为每个虚拟主机创build一个工作池。 但是,我不清楚我是否可以命名或标记工作进程,以便可以有意义地汇总资源使用统计信息。 我觉得大共享主机以前一定会遇到这个问题。 有任何想法吗?

Apache通过负载均衡器访问时出现错误的证书

我有一个服务器有两个SSL证书的设置,一个用于内部访问的地方,它被访问host.my-local.net和其他外部访问的地方访问类似于185.185.185.185 (这是不是实际的IP地址,但它是一个IP地址,因为没有分配给它的主机名)。 当通过外部地址访问时,连接将通过一个我无权访问的负载均衡器/防火墙,我只知道它将特定端口上的传入连接转换为SSL端口上的内部地址。 问题是,当外部连接进来时,我得到浏览器警告,该网站伪装成host.my-local.net ; 它将提交host.my-local.net的证书,而不是185.185.185.185 。 我在我的apache2configuration文件中为这两个名称设置了虚拟主机,所以我认为服务器在区分外部连接和局域网连接时遇到了问题。 我没有使用简单的NAT来解决这个问题,所以我不知道如果负载平衡器使得请求看起来像是来自局域网而不是内部的,那么为什么会有所作为。 我已经validation了,我使用的浏览器支持SNI(Google Chrome)和Apache 2.4,显然支持它,而不需要NameVirtualHost指令。 但是,文档说: In 2.3.11 and later, any time an IP address and port combination is used in multiple virtual hosts, name-based virtual hosting is automatically enabled for that address. 但是,这两个不同的虚拟主机所使用的IP地址并不相同,一个是内部(LAN)IP地址,一个是外部(全球可见)IP地址,那么在这里适用? 为了澄清我的configuration,我设置了两个虚拟主机,如下所示: <VirtualHost 185.185.185.185:443> # here i specify the certificate for 185.185.185.185, eg SSLCertificateFile /etc/ssl/private/185.185.185.185.crt […]

configurationmod-security2后Apache服务器发生故障

我从https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_security-with-apache-on-debian-ubuntuconfiguration了mod-security。 之后,重新启动Apache服务,但我发现错误: The apache2 configtest failed. Output of config test was: AH00526: Syntax error on line 97 of /usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf: ModSecurity: Found another rule with the same id Action 'configtest' failed. The Apache error log may have more information. 错误日志:(但我认为这不是从模式安全的错误logging) [Sun Jan 11 01:40:20.278652 2015] [mpm_prefork:notice] [pid 5359] AH00169: caught SIGTERM, shutting down 我也使用模式回避。

PHP无法写入文件,无论权限

在Centos 7×64盒子上,apache / php无论如何都无法写入文件。 我将目录设置为apache:apache,甚至将其设置为777,php仍然获得权限错误。 还有什么可以拒绝写入文件的PHP?

如何configuration子域在Apache中redirect到内部/本地IP

默认情况下,当我要去我的外部IP或无IP域我留在我的互联网路由器的页面上,直到我为我的网站设置Apache,并在路由器中打开端口80 … 我的问题是: 如何configurationredirect或redirect到我的路由器本地IP 192.168.1.254,在我的服务器机器192.168.1.104的Apache? 我的目标是创build一个像无线路由器router.example.com的子域,当我访问它出现我的路由器的login页面(IP在我家里是192.168.1.254) 我试过这个: <VirtualHost *:80> ServerAdmin [email protected] ServerName router.example.com Redirect permanent / http://192.168.1.254 ErrorLog ${APACHE_LOG_DIR}/router-error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/router-access.log combined </VirtualHost> 但不从外部工作…

(103)软件导致连接中止:代理:通过请求主体失败

在使用Tomcat服务器处理请求时,我们的代理Apache日志中logging了以下错误: (103)Software caused connection abort: proxy: pass request body failed proxy: pass request body failed 我们有一个Apache反向代理服务器,它从Tomcat服务器为客户端提供请求。 有时,来自代理的请求返回502,出现上述错误。 Tomcat服务器中没有错误日志与Proxy中的上述错误相关联的日志。 此外,请求没有超时,因为一些请求响应时间是1秒,我们的默认超时是120秒。 我们已经将ProxyBadHeader Ignore添加到了我们的httpdconfiguration[Ref:502代理错误/从Apache(mod_proxy)上传到Tomcat 7],并且在我们的Tomcat日志中仍然没有看到任何错误。 有没有人看过这个问题?

如何使前端HTTP代理无需停机即可执行应用程序维护?

我们在Java中有一个Web应用程序(尽pipe这个语言与这个问题并不相关),而且它是Apache通过一个简单代理的前端。 有没有办法排队来自客户端的所有HTTP请求(以便他们的HTTP连接保持而不是丢弃),而我们closuresJava应用服务器(或任何其他容器…)与我们的应用程序。 维护时间<60秒,所以我们的想法是,我们只是部署一个新版本的应用程序,然后说“允许stream量再次回到Web应用程序”,以便客户将遇到延迟,但不是一滴连接 – 作为排队的请求将不会被允许到达我们的应用程序。 更清楚的是,我们不是在这里处理一个网站,但实际上这些是通过HTTP完成的API请求,而客户端实际上是使用支持指定延迟的代码库 – 因此客户端将知道要等待(当我们在做维护)。 你有什么想法? 如果需要的话,如果没有明显的/现成的解决scheme,我们可以开发一个小应用程序,虽然这是一个很普遍的问题,任何人都提供一个HTTP API到他们的客户端。

将MIMEtypes作为“text / html”接收,服务器configuration为“text / javascript”

firefox和chrome都显示我的服务器的javascript文件是作为MIMEtypestext / html提供的。 JavaScript文件具有.js扩展名。 首先,mime_module已安装并处于活动状态: apachectl -M | grep mime mime_magic_module (shared) mime_module (shared) Syntax OK 其次,我在我的conf文件中有这个: AddType text/css .css AddType text/javascript .js 我试着添加这个: <Files "*.js"> ForceType text/javascript </Files> 并重新启动apache,但JavaScript文件在Chrome和Firefox仍然显示为“text / html”。 没有显示error.log和access.log没有返回任何有用的东西: 1.2.3.4 – – [03/Mar/2015:10:42:00 -0500] "GET /some/dir/js/app-min.js HTTP/1.1" 200 14642 这里是其中一个.js文件的标题(如Firefox中所示) Connection: close Content-Type: text/html; charset=UTF-8 Server: Apache Strict-Transport-Security: max-age=63072000; includeSubDomains Transfer-Encoding: […]

Apache目录根configuration

我在运行Red Hat的Linux机器上安装了Apache 2.4。 我的问题很简单:指令<Directory>… </Directory>等同于<Directory /> …</Directory>来configuration文档根目录吗? 谢谢。 编辑:这我的httpd.conf,我删除了所有的评论: ServerRoot "/test/ApacheFolder" Listen 80 LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule access_compat_module modules/mod_access_compat.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule reqtimeout_module modules/mod_reqtimeout.so LoadModule filter_module modules/mod_filter.so LoadModule mime_module modules/mod_mime.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so […]

指定要查找.htaccess文件的直接存储器

我读过所有目录启用.htaccess导致性能开销,因为所有子文件夹也扫描.htaccess文件。 我只想将.htaccess文件读入:/var/www/xgclan.com/public_html和/var/www/xgclan.com/public_html/forum 我在我的apache2.conf中configuration了以下内容(对于/var/www/xgclan.com/public_html) <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options FollowSymLinks AllowOverride None Require all granted </Directory> <Directory /var/www/xgclan.com/public_html> Options FollowSymLinks AllowOverride All Require all granted </Directory> 但是,这似乎并没有工作..子目录也读取.htaccess文件 我应该提到xgclan.com是一个虚拟主机。 我究竟做错了什么? 我能够防止子目录检查.htaccess文件: <Directory /var/www/xgclan.com/public_html/> Options FollowSymLinks AllowOverride None Require all granted </Directory> […]