Articles of apache 2.2

Apache内部RE-WRITE取代301redirect

我需要内部重写(由于部分CMS内容重组),因为我目前有一个永久的301redirect,这是杀了search引擎优化。 我不希望用户浏览器redirect或了解内容位置更改。 案例一 www.example.com internally rewritten to www.example.com/home/home.html 案例二 www.example.com/home.html internally rewritten to www.example.com/home/home.html 这是我写的内部重写案例之一的path: RewriteRule ^/$ /home/home.html [NC,L] 现有的redirect规则(工作正常)将被replace为: RewriteRule ^/$ http://www.example.com/home/home.html [R=301,L] 任何意见,我要去错了,欢迎!

如何在子域上运行PHP-FPM?

我在httpd.conf中通过ProxyPassmatch运行Apache 2.4和PHP-FPM,而不是vhost( 它的价值 ): ProxyPassMatch ^/(.*\.php)$ unix:/var/run/php-fpm.sock|fcgi://127.0.0.1/home/user/www 我想创build一个子域来运行CMS,但很快我发现PHP文件没有在该子域上处理,可能是由于我不了解如何设置它。 我不确定是否需要使用单独的ProxyPassMatch指令创build一个虚拟主机,否则上面的默认工作将会起作用。 httpd.conf中: ServerRoot "/usr/local" Listen 192.168.1.2:80 LoadModule authn_file_module libexec/apache24/mod_authn_file.so LoadModule authn_core_module libexec/apache24/mod_authn_core.so LoadModule authz_host_module libexec/apache24/mod_authz_host.so LoadModule authz_groupfile_module libexec/apache24/mod_authz_groupfile.so LoadModule authz_user_module libexec/apache24/mod_authz_user.so LoadModule authz_core_module libexec/apache24/mod_authz_core.so LoadModule access_compat_module libexec/apache24/mod_access_compat.so LoadModule auth_basic_module libexec/apache24/mod_auth_basic.so LoadModule reqtimeout_module libexec/apache24/mod_reqtimeout.so LoadModule filter_module libexec/apache24/mod_filter.so LoadModule deflate_module libexec/apache24/mod_deflate.so LoadModule mime_module libexec/apache24/mod_mime.so LoadModule log_config_module libexec/apache24/mod_log_config.so LoadModule env_module […]

如何configurationOpenLDAP服务器并使用Apache HTTPD进行testing

我正在使用CentOS 6.我发现了一篇很好的关于如何在CentOS 6上安装和configurationOpenLDAP的文章 ,并且我在这里find了一些关于如何configurationLDAP来处理Apache HTTPD的很好的文档(我正在使用2.2,CentOS 6)。 不幸的是,这两篇文章不一定要指出的是如何将两者连接在一起。 我提到的第二篇文章非常适合Apache的使用,假设您已经对LDAP语法有了很好的理解,而且我提到的第一篇文章是非常棒的,假设您已经想到了一种testing方法。 看来你必须成为专家才能完成设置。 所以我们假设我根据CentOS OpenLDAP的walk-through文章configuration了我的LDAP凭证。 我已经添加了以下人员: acme.ldif dn: dc=acme,dc=com objectClass: dcObject objectClass: organization dc: acme o : acme users.ldif dn: ou=Users,dc=acme,dc=com objectClass: organizationalUnit ou: Users bob.ldif dn: cn=Bob Jones,ou=Users,dc=acme,dc=com cn: Bob Jones sn: Jones objectClass: inetOrgPerson userPassword: p@ssw0rd uid: bjones engineering.ldif dn: cn=Engineering,ou=Users,dc=acme,dc=com cn: Engineering objectClass: groupOfNames member: cn=Bob […]

Apache速度限制最佳实践

我有以下业务场景: Apache HTTP服务器通过ajp负载平衡客户端请求到应用程序服务器 所有的资源密集型工作都是在每个请求的应用服务器上完成的 请求是基于应用程序用户的,但是没有简单的方法来限制用户。 大多数用户将来自一个单一的IP,有几个可能来自几个ips。 因此,为了这个问题的意图,我假设每个用户将来自一个IP。 目标是防止任何单个用户用请求淹没服务器。 我目前使用iptables限速来限制每个ip的最大并发连接数。 有更好的方法吗?

Apache的deflate模块不工作

这是非常平坦的,我谷歌没有运气的问题。 我有2台服务器(centos6,apache2.2)。 Apache的configuration是完全一样的(我当然是由puppetconfiguration的apache) 我的deflate.conf: AddOutputFilterByType DEFLATE text/html text/plain text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript application/javascript application/ecmascript text/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/json 当我curl -I – 压缩http://web1.tld/file.css我得到以下答复: HTTP/1.1 200 OK Date: Fri, 19 Sep 2014 15:02:21 GMT Server: Apache Last-Modified: Fri, 19 Sep 2014 08:36:46 GMT ETag: "189dc-50367005ed32a" Accept-Ranges: bytes Cache-Control: max-age=2419200 Expires: Fri, […]

Apache ReverseProxy在返回错误页面时将上游服务器设置为错误

我们正在使用Apache LoadBalancer / ReverseProxy为我们的Web服务器提供故障转移。 目前我们遇到以下问题: web服务调用返回HTTP状态码为500的错误 由于ProxyErrorOverride设置为On,因此Apache会覆盖上游服务器的响应,并将其replace为默认的Apache错误页面。 我们添加了这个指令,以确保没有上游服务器的错误细节可以到达外部。 Apache将上游服务器设置为“ERR”状态一分钟 后续的请求被发送到另一个服务器,这是不知道客户端会话,所以访问被拒绝(我们使用粘滞而不是共享的会话) 如果没有ProxyErrorOverride ,则会返回上游服务器的响应,负载平衡器不会将其设置为“ERR”状态。 我没有发现这种副作用logging,也没有解决方法。 有任何想法吗? 从我们的configuration文件中摘录一些内容: ProxyRequests Off # ProxyErrorOverride On <Proxy balancer://jboss> BalancerMember http://server1:8080 route=11 connectiontimeout=60 BalancerMember http://server2:8080 route=12 connectiontimeout=60 ProxySet stickysession=ROUTEID </Proxy> httpd -v返回 Server version: Apache/2.2.15 (Unix)

CentOS – 要复制的文件在PHP中获得一致的MIMEtypes检测

我有两个服务器上运行的网站(用PHP编写)。 我已经尝试通过网站上传相同的确切文件到两台服务器。 在其中一台服务器上,文件的mimetype被检测为video/mpeg ,另一个被检测为application/octet-stream 。 我想让服务器以相同的方式检测MIMEtypes,我假设我可以通过从一台服务器复制一些文件到另一台服务器来实现。 我需要复制哪些文件? 服务器也运行不同版本的CentOS:5.9和5.10。 显示application/octet-stream的服务器上的Apache版本是1.3.37。 另一方面是2.2.3。 编辑:我也注意到正在检测application / octet-stream(不需要的mimetype)的服务器,在其他的httpd中有LoadModule mime_magic_module modules/mod_mime_magic.so注释掉它的etc / httpd / conf / httpd.conf文件.conf文件没有被注释掉,如果是有影响的话。 还尝试将该行添加到httpd.conf中,但它不起作用: AddType video/mpeg .mpg

Apache使用当前和归档的不同名称进行日志转换

我在CentOS 6.5上运行Apache 2.2,我想要做的就是使用Apache的当前访问日志文件: /var/log/httpd/access_log 每天午夜,该文件被重新命名为(假设2014-09-22是刚通过的date): /var/log/httpd/access_log.2014-09-22 …并在access_log创build一个新的日志文件( access_log ),Apache继续logging。 我怎样才能做到这一点? 我已经设置了这个CustomLog指令: CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y-%m-%d 86400" combined 但是,如果今天是2014-09-22,则会导致当前(活动)日志文件被命名为access_log.2014-09-22 。 我可以想到一个hacky的解决scheme,我有一个脚本,在午夜后运行,并将/var/log/httpd/access_log设置为当前日志文件的符号链接。 (这将基于date,所以即使它是一个低stream量的服务器,并且新的日志文件还不存在,符号链接将是正确的,只要任何请求到达服务器就会起作用)。 但似乎必须有一个更优雅的方式来做到这一点。 有什么办法来告诉旋转日志使用一个文件名为当前日志,并为旋转的日志不同的文件名? 如果没有,那么有没有其他的干净的方式来做我想要的? 编辑:每天重新启动Apache不是一个选项。

AWS:在多个负载平衡实例之间同步WWW文件夹

我是AWS新手。 我正在尝试安装EC2 Web服务器。 我得到了服务器启动,我做了AMI(其中包括WWW文件夹),添加负载平衡器等。我终止了原始实例。 我现在想上传一些文件到WWW文件夹,以便我可以修改我的网站。 但是,我不知道如何。 我假设我应该做一些事情,例如在实例之间共享www文件夹。 以下是我正在考虑的问题: 如何使用SFTP(winSCP)连接到WWW文件夹? 如果我在一个实例上更改WWW文件夹,更改是否传播给其他人? 如果不是,我如何创build一个共享的WWW文件夹? 我如何修改Apache指向共享的WWW文件夹? 我的设置: AWS弗吉尼亚州的VPC 在/ var / www / http文件夹中包含当前网站数据的AMI 网站是基于drupal的 RDS存储Drupal数据库 phpmyadmin也在www文件夹中,用来控制RDS

Apache mod_proxy在空格处切断URL

我在www.example.com/.htaccess上有以下代理规则 RewriteEngine On RewriteRule ^(.*)$ http://www2.example.com/$1 [P] 请求 http://www.example.com/images/properties/resized%20pics/1_thumb.jpg 在www2上的服务器日志中显示为 /images/properties/resized 我尝试了各种标志[NE,P],[B,P]但是不能得到这个工作。 还尝试引用RewriteRule的第二个参数。 我已经看到这个问题,但它处理500我得到404。 使用mod_proxy通过%20代理URL时的Apache 500 tcpdump -A -s 0 port 80 and host www2.example.com | grep resized tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes E…%[email protected]…I…ls…Pu….<6.P.@).f..GET /images/properties/resized/ HTTP/1.1