Articles of apache 2.4

用大量的池来处理PHP-FPM的最好方法

我们最近升级到了Apache 2.4,并希望摆脱2.2版本中的Prefork + mpm-itk设置。 问题是,我们主持了大约60个领域,而我们控制着PHP的发展,我们仍然希望每个领域都是孤立的,因为多年来,我们有很多不同的开发人员,插件等等。 我知道我们必须为每个域创build一个FPM池,但是我们如何处理它将创build的所有进程呢? 有没有人有任何build议,他们如何处理和限制这一点,而不会造成稳定性问题。

Nginx反向代理与iRedMail Apache2

在一个空的VPS主机上,我设法使用Apache2和LDAP运行基本的iRedMail安装,我的roundcubemail可以在以下地址访问: https://www.mydomain.com/mail 然后我安装了NginX,closures了Apache2,重新configuration了iRedMail(在DNS条目中没有添加任何额外的Alogging),并设法在Nginx基础安装上运行它,以及可以在以下地址访问的roundcubemail: https://mail.mydomain.com 现在,我想运行带有roundcubemail的基础iRedMail Apache2安装的Nginx反向代理,请访问: https://mail.mydomain.com 我有点卡住下面的Apache2configuration文件: /etc/apache2/ports.conf 听8080 /etc/apahce2/sites-available/my-iredmail.conf <VirtualHost *:8080> DocumentRoot / var / www / ServerName mail.mydomain.com 别名/“/ usr / share / apache2 / roundcubemail /” <Directory "/usr/share/apache2/roundcubemail"> 选项索引FollowSymlinks MultiViews AllowOverride全部 订单允许,否认 全部允许 </Directory> </VirtualHost> 并遵循NginXconfiguration文件: /etc/nginx/sites-available/default 服务器{ 听80 default_server; 听[::]:80; root /usr/share/nginx/html; index index.html index.htm index.php; server_name mydomain.com www.mydomain.com mail.mydomain.com; […]

Apache的加载CSS文件为文本/ HTML

这是我的网站 http://jiyihezi.net/ css和js文件的内容types是text/html ,所以浏览器不能加载它们。 但是,如果我打开这个链接, http://210.73.222.16/memorybox-web CSS和JS文件都加载好了。 所以我尝试启用mime模块和header ,然后我尝试: /etc/apache2/mods-enabled/mime.conf下行添加到/etc/apache2/mods-enabled/mime.conf文件中: <IfModule mod_mime.c> AddType text/css .css AddType text/javascript .js … 改变我的虚拟主机 <VirtualHost *:80> DocumentRoot /var/www/memorybox-web/ ServerName jiyihezi.net <Directory /var/www/memorybox-web/> <Files *.css> Header set Content-type "text/css" </Files> </Directory> </VirtualHost> 然后我重新启动我的Apache,并再次打开浏览器,但仍然无法加载CSS文件和JS文件。

POST请求正文未能到达PHP

我在Apache 2.2 / PHP 5.3和Apache 2.4 / PHP 5.4上看到了以下问题 我遇到了一个罕见的问题,POST请求(小于1k)到Web服务器似乎在到达PHP服务之前将被截断,PHP服务将作用于数据。 我自己还没有能够重现这个问题,所以我只是在从日志收集的证据上工作。 在每种情况下,我收到一个有效的非零内容长度头,但没有正文的请求。 我已经倾倒了关于呼叫代理的各种信息,我没有看到任何模式。 破碎的请求来自各种浏览器和源代码ips,对于任何给定的IP,我偶尔会看到很多有效的请求。 我试过使用pecl_http的getRequestBody()和file_get_contents(“php://input”),在这种情况下也不返回任何数据。 我也暂时启用了mod_dumpio,并且在违规交易的情况下,我看到一个条目试图缓冲请求主体: mod_dumpio: dumpio_in [readbytes-blocking] 288 readbytes 通常会跟随数据的实际缓冲,如: mod_dumpio: dumpio_in (data-HEAP): 288 bytes mod_dumpio: dumpio_in (data-HEAP): (the post data) 但是在遇到问题的情况下,我没有看到这些条目,在这个apache进程上有几秒钟的延迟,然后我看到几个更多的实例: mod_dumpio: dumpio_in [readbytes-blocking] 288 readbytes mod_dumpio: dumpio_in – 70014 混淆了这些重复的读取尝试,我看到一个PHP线程在格式错误的请求上执行并产生响应的证据。 从HTTP协议4.4看来,请求的主体必须与内容长度匹配,以使请求有效,所以我正在努力了解有问题的请求是如何将它提交给PHP的。 我还应该提到,这种情况下的内容types是作为application / x-www-form-urlencoded提供的,即使发送的数据是原始的json。 由于我直接从数据stream中读取数据,所以我不指望它与我的问题有关,但是值得一提。 我不想盲目地比较PHP中的内容长度和strlen($ content),但是我没有办法select如何进一步诊断问题了。 任何有关如何解决这种情况的帮助或收集更多有价值的debugging信息将不胜感激。

只为子目录启用mod_xsendfile

我试图只为/var/www/wsgi/site/priv子目录启用xsendfile。 通过下面的configuration我的网站正在服务0字节的文件,这显然意味着xsendfile没有正确启用。 <VirtualHost *:80> ServerName localhost ServerAdmin admin@localhost DocumentRoot /var/www/wsgi/site WSGIDaemonProcess site user=site group=site python-path=/usr/local/site:/usr/local/virtualenvs/site/lib/python2.7/site-packages WSGIProcessGroup site WSGIScriptAlias / /var/www/wsgi/site/wsgi.py <Files wsgi.py> Require all granted </Files> # … some alias for static files … Alias /priv/ /var/www/wsgi/site/priv/ <Directory /var/www/wsgi/site/priv> Require all denied XSendFile On XSendFilePath /var/www/wsgi/site/priv/jobfiles # ^ I know that this is a different […]

apache mod_proxy_ajp偶尔会有不完整的文件

我们有一个问题,一些用户看到从Web服务器返回的不完整的文件,这些文件使用mod_proxy_ajp代理到Tomcat apache 2.4.6 tomcat版本7.0.27 有问题的文件超过40MB,有些用户看到它在10MB左右完成,一直到完整的文件大小。 当看到传输的字节时,tomcat访问日志报告文件被完全发送,Web服务器指示最终用户接收的大小。 大多数情况下,Web服务器响应代码是200,很less是206。 我有点难以理解,甚至试着去确定这个问题可能发生的地方。

为什么在启用SELinux httpd_read_user_content并将文件设置为httpd_user_content_t后,Fedora 20仍然拒绝访问主目录?

在我的Fedora 20上,我已经了解到,为了允许像Apache这样的进程通过进程对文件进行写入访问,进程所有者(在我的情况下是apache )必须具有写入文件的权限。 而且,由于启用了SELinux,文件必须具有httpd_system_rw_content_t上下文。 它也看起来像一个SELinux政策阻止httpd访问/home下的任何文件。 几乎每个人都同意,要解决这个问题,你想访问的文件必须有安全上下文httpd_user_content_t或httpd_user_rw_content_t 。 我一直这样做,但Apache仍然说它没有访问目录的权限。 当这些文件没有user_content上下文,我确实得到了SELinux的警告。 当设置上下文时,我不会收到警告,但是Apache仍然无法访问这些文件。 /home/me/game下的所有东西都具有以下用户权限和安全上下文: $ sudo chcon -Rv –type=httpd_user_rw_content_t game $ sudo setsebool -P httpd_read_user_content 1 $ sudo chown -R :apache game $ ll -Zd game drwxrwxr-x. me apache unconfined_u:object_r:httpd_user_rw_content_t:s0 game 然而Apache告诉我: 被禁止 您无权访问此服务器上的游戏。 可能有人知道我还能检查什么?

Apache web服务器是否提供了一个用于编程实时configuration更改的API?

我使用Apache作为Tomcat前面的身份validationWebcaching。 定期,我们将采取一个dynamic的资源,并保存副本到networking服务器。 将networking服务器路由请求的规则重写到静态副本。 如果可能的话,我希望能够即时修改这些规则。 我也希望能够从Tomcat初始设置规则,以避免需要双重configuration。 有没有Apache的API来做这样的改变? 它可以直接通过Apache,或者如果有第三方应用程序提供这个,也可以。 (不幸的是,“api”,“apache”和“configuration”是太常见的一组search条件,以获得有用的结果)

Apache过期不能为金字塔服务器工作

我有一个金字塔服务器运行在EC2通过Apache与以下configuration – <Directory path_to_virtual_env> WSGIProcessGroup pyramid Require all granted Order allow,deny Allow from all SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE text/html text/css text/plain application/x-javascript application/x-font-woff BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html ExpiresActive On ExpiresDefault "access plus 1 year" Header append Cache-Control "public" </Directory> 我能够运行GZIP压缩端口80金字塔服务器,但就expiry模块而言,我得到以下响应的大部分文件 – 我已经确保expires模块正在执行 – sudo a2enmod expires和sudo a2enmod headers但是我得到了和上面相同的响应。 我已经尝试了很多来自这个主题的stackoverflow的答案,但仍然没有成功。 […]

当file upload时,PureFTPD无法列出Web根目录

我终于向前迈出了一步,并签署了一个VPS服务器来换取我过时的共享主机帐户。 我在DigitalOcean的VPS上运行Ubuntu 14.04 x32。 在VPS之上我有Apache,PHP,MySQL,PureFTPD和ISPConfig 3控制面板。 一切正常,服务器显示默认页面,DNS设置正确。 但是,当我尝试从以前的共享主机帐户上传Wordpress博客时,Filezilla变得无法列出Web根目录的内容,如下所示: Response: 220———- Welcome to Pure-FTPd [privsep] [TLS] ———- Response: 220-You are user number 1 of 50 allowed. Response: 220-Local time is now 05:23. Server port: 21. Response: 220-This is a private system – No anonymous login Response: 220-IPv6 connections are also welcome on this server. Response: 220 […]