Articles of apache 2.2

Fail2ban和X-Forwarded

我正在configuration我的web服务器上的fail2ban。 我的Web服务器在ELB后面。 所以我configuration了X转发来获取Apache Access日志中的真实IP。但不幸fail2ban在访问日志中启用x转发时无法扫描访问日志。这是我的回归条件 failregex = ^<HOST> -.*\"(GET|POST).* 而bellow是我的logformat,当x转发启用 10.0.2.18 (42.104.63.31) – – [01/May/2014:16:05:39 +0000] "GET / HTTP/1.1" 304 – "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14"

memcached在两台服务器上的工作方式不同

我有一个开发和testing环境(表面上)设置相同,但在开发服务器上工作的代码不能在testing服务器上工作。 我已经缩小到memcached。 开发环境使用的是memcached,工作正常; 但在应用程序的configuration文件中使用memcached驱动程序的testing服务器上没有会话存储。 如果我将testing服务器更改为使用Laravel的本机文件驱动程序,那么所有基于会话的代码就像一个魅力一样; 将其更改回使用memcached,并且会话数据不会持久。 代码是相同的; 两个环境都从相同的提交克隆相同的回购。 在两个环境中, phpinfo()输出几乎完全相同,除了您在不同服务器上运行脚本所期望的服务器URL和引用pathpath差异。 这似乎是memcached没有运行/在testing服务器上工作,我不太熟悉如何工作知道为什么不是或如何排除故障。 任何人有任何提示或东西要尝试? 这可能是一个权限问题? 有没有一个configuration文件,我需要在testing服务器上进行更改以匹配dev上的内容? (memcached部分的phpinfo()输出对于两个服务器都完全相同。) 服务器设置: Dev:Debian 7.4 Wheezy testing:Debian 7.5 Wheezy PHP(都):5.4.27-1〜dotdeb.1 Apache(都):2.2.22

访问局域网上的虚拟主机

我有一个LAMP服务器configuration为服务器VHOSTs。 这里的问题是,当我尝试通过同一个局域网访问它时,我似乎尝试访问本地IP地址而不是VHOST地址。 但是,当我尝试从外部访问服务器时,它显示正确的VHOST。 我需要configurationApache以某种方式服务于正确的网站,而不是默认的网站。 我该怎么做呢? 这是我的两个VHOST条目的例子。 默认 <VirtualHost *:80> ServerAdmin [email] ServerName eresk.fi DocumentRoot /home/web/apache-webserver/public_html/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/web/apache-webserver/public_html/> Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /home/web/apache-webserver/cgi-bin/ <Directory "/home/web/apache-webserver/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log […]

SetEnvIfNoCase指令匹配ip失败

我试图通过一个Apache反向代理基于客户端IP地址设置一些特定的标题。 我尝试使用SetEnvIfNoCase / SetEnvIf,但我不知道怎么写一个正确的正则expression式🙁 这里我试图在httpd.conf中设置(假设反向代理指令正常 – 它们是): SetEnvIfNoCase Remote_Addr "192\.168*" user_location_internal RequestHeader set x-acme-user-location internal env=user_location_internal 可以说,请求来自192.168.1.100。 然后正则expression式应该匹配 – 我尝试了几个在线validation器声称是perl兼容和192.168.1.100匹配到“192.168 *”。 SetEnvIf的文档也声明为perl reg ex兼容。 但是它不起作用。 唯一有效的语法如下: SetEnvIfNoCase Remote_Addr 192* user_location_internal RequestHeader set x-acme-user-location internal env=user_location_internal 然后设置头文件,这个问题与正则expression式语法有关。 所以我最好的猜测是,我没有正确地逃脱这个点。 但根据: http : //perldoc.perl.org/perlre.html#Regular-Expressions反斜杠是转义元字符的正确符号。 任何猜测什么是错的?

apache将REMOTE_USER转发给X-Forwarded-User

当HTTP基本authentication正确到后端时,我想传递由apache设置的环境variablesREMOTE_USER。 这也将提供身份validation到后端服务器。 这是我的apache2configuration文件: <Directory /> AuthType basic AuthUserFile $my_file require valid-user RewriteEngine on RewriteCond %{REMOTE_USER} (.+) RequestHeader set X-Forwarded-User %{REMOTE_USER}e </Directory> 通过apache2进行身份validation进展良好,因为我已正确redirect到后端服务器,但后来服务器没有收到REMOTE_USER,因为X-Forwarded-Uservariables未出现在tcpdump跟踪中。 我可能忘记/错误configuration了哪些不会将此REMOTE_USERvariables作为X-Forwarded-User转发到后端?

Apache / GnuTLS:无法使多个启用TLS的虚拟主机正常工作

前一段时间,我为我们的Intranet设置了一个SSL证书颁发机构,生成了一堆证书并运行了许多站点,所有这些证书都在同一个物理主机上,只有一个Apache2安装; 每个虚拟主机一个根证书和一个证书。 我将根证书添加到客户端机器,一切都很好(即所有通信都受到保护)。 现在我正试图从mod_ssl切换到mod_gnutls 。 对Apache2configuration的更改很简单: 禁用SSL模块: a2dismod ssl 启用GnuTLS模块: a2enmod gnutls 使用与SSL部分相同的内容向/etc/apache2/ports.conf添加新节: <IfModule mod_gnutls.c> NameVirtualHost *:443 Listen 443 </IfModule> 更改/etc/apache2/sites-available/site1.domain-ssl每个站点configuration: <IfModule mod_gnutls.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName site1.domain DocumentRoot /var/www/site1.domain_ssl/public_html/ ErrorLog /var/www/site1.domain_ssl/logs/error.log CustomLog /var/www/site1.domain_ssl/logs/access.log combined LogLevel debug # <Directory … > settings omitted # old SSL configuration: # SSLEngine on # SSLCertificateFile /etc/ssl/certs/site1.cert.pem # […]

“无法打开日志”在Apache错误日志debian

[已解决]更高的文件描述符限制解决了这个问题 APACHE_ULIMIT_MAX_FILES='ulimit -n 65536' 我无法启动apache2服务: [root@myhost ~]# service apache2 start [….] Starting web server: apache2[Thu May 22 00:32:41 2014] [warn] NameVirtualHost *:443 has no VirtualHosts Action 'start' failed. The Apache error log may have more information. failed! [root@myhost ~]# /var/log/apache2/error.log [root@myhost ~]# tail -200 /var/log/apache2/error.log (…) Unable to open logs Unable to open logs Unable […]

带有SSL的example.com和www.example.com

我从https://www.startssl.com/获得了一个免费的CA证书。 我添加了域名example.com ,并在控制面板中显示了SSL / TLS服务器下的www.example.com和域validation下的example.com 。 我按照说明configuration了Apache(在Centos上运行),并且可以访问https://example.com/而没有“不受信任的连接”警告,但访问https://www.example.com/时 ,我收到警告。 如何将https://www.example.com/重写为https://example.com/ ,或者将证书configuration为也可以使用http://example.com/ ?

安装支持SNI的OpenSSL以及之前版本的OpenSSL

因此,我了解到 ,要在同一个IP地址上托pipe多个HTTPS网站,您需要一个支持SNI(0.9.8f及更高版本)的OpenSSL版本。 我的RHEL5盒子目前有0.9.8e和​​Apache版本httpd-2.2.26-2.el5 。 根据同样的问题,replace原始版本的OpenSSL并不是一个好主意,而是有一个并行安装。 但是,它并没有明确提及如何实现这一点。 所以我的问题是: 如何在不破坏系统的情况下安装OpenSSL? 我如何让Apache使用这个版本的OpenSSL而不是原来的版本? 详细的指导将是非常有益的。

将端口3000路由到apache2别名

我有一个运行在端口3000上的meteor应用程序。我可以用www.myurl.com:3000成功连接到该程序,但宁可通过www.myurl.com/myappname连接到该程序。 我开始在这个网站上的说明: http : //www.andrehonsberg.com/article/deploy-meteorjs-vhosts-ubuntu1204-mongodb-apache-proxy和我有以下的Apacheconfiguration文件: <VirtualHost *:80> ServerName myurl.com ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:3000/ ProxyPassReverse http://localhost:3000/ </Location> </VirtualHost> 我不知道如何继续从这里获得www.mysite.com/myapp上的程序。 在其他情况下,我会在Apacheconfiguration文件中使用别名,但是在这种情况下,这看起来不是正确的方向。 如何configurationApache发送端口3000到www.myurl.com/myapp?