Articles of apache 2.2

Apache – ScriptAlias和WSGIScriptAlias之间的区别

我在RHEL Linux服务器上使用apache在我的/etc/httpd/conf.d/httpd.conf中有两个指令: WSGIScriptAlias /apps /var/www/apps <Directory /var/www/apps > Options MultiViews ExecCGI MultiviewsMatch Handlers SetHandler wsgi-script Order allow, deny allow from all </Directory> ScriptAlias /scripts /var/www/scripts <Directory /var/www/scripts > Options MultiViews ExecCGI MultiviewsMatch Handlers SetHandler wsgi-script Order allow, deny allow from all </Directory> 有什么不同? 据我所知,WSGIScriptAlias仅限于运行Python脚本,ScriptAlias也允许运行Perl脚本。 我可以总是使用ScriptAlias而不是WSGIScriptAlias? 使用WSGIScriptAlias而不是ScriptAlias是否有任何性能优势?

mod_proxy怎么会有害?

我想将这个答案应用到我自己的服务器。 但是,它不会是一个内部服务器,所以我很关心安全性。 链接的问题说明mod_proxy可能很容易被错误地configuration。 什么是如此危险? 那么configuration它的“好”方法是什么?

无效的命令“SSLRequireSSL”,

我pipe理的svn服务器崩溃了。 服务器启动并再次运行,但我无法设法让svn运行了。 我按照这里列出的说明: http : //mark.koli.ch/2010/03/howto-setting-up-your-own-svn-server-using-apache-and-mod-dav-svn.html 然而,当我尝试启动Apache使用/etc/init.d/httpd开始我得到一个[FAILED]消息。 错误日志中没有内容。 有什么build议么?

.htaccess文件名可能被阻止?

我有一堆secure_xxxxxx.php文件。 有没有办法使用.htaccess阻止访问基于IP的所有secure_ * php文件? 编辑:我试过,但我得到500错误 <FilesMatch "^secure_.*\.php$"> order deny all deny from all allow from my ip here </FilesMatch> 在apache错误日志中也看不到任何错误 httpd -M Loaded Modules: core_module (static) authn_file_module (static) authn_default_module (static) authz_host_module (static) authz_groupfile_module (static) authz_user_module (static) authz_default_module (static) auth_basic_module (static) include_module (static) filter_module (static) log_config_module (static) logio_module (static) env_module (static) expires_module (static) headers_module (static) setenvif_module […]

如何允许非特权的apache / PHP做一个根任务(CentOS)

我正在CentOS 6.3机器上为我们的客户build立一个个人保pipe箱。 服务器将通过SFTP和基于PHP的专有HTTP服务进行访问。 这台机器将在我们的DMZ,所以它必须是安全的。 正因为如此,我有apache作为非特权用户运行,强化了apache,操作系统,PHP的安全性,在iptables中应用了大量的过滤,并应用了一些限制性的TCP包装器。 现在你可能已经怀疑这个人来了,SELinux也将被强制执行。 我正在设置PAM来使用MySQL,以便我的Web应用程序用户可以login。 这些用户都将在一个只能使用SSH的SFTP组中,用户将被连接到他们自己的“home”文件夹。 为了让这个SELinux希望文件夹有user_home_t标签。 父目录也只能由root用户写入。 如果这些限制不符合,SELinux将立即终止SSHpipe道。 需要通过http和SFTP访问的文件,所以我做了一个SELinux模块,允许Apache使用user_home_dir_t标签search/ attr /读/写等目录到目录。 由于sftp用户存储在MySQL中,我想在创build用户时设置其家庭目录。 这是一个问题,因为Apache没有对/ home目录的写入权限,只能由root来写,因为它需要保持SELinux和OpenSSH的快乐。 基本上我需要让Apache只做一些作为root的任务,而且只能在/ home中。 所以我需要以某种方式暂时提升权限,或让root用户为Apache执行这些任务。 我需要使用root权限来执行以下操作。 mkdir /home/userdir/ mkdir /home/userdir/userdir chmod -R 0755 /home/userdir umask 011 /home/userdir/userdir chcon -R -t user_home_t /home/userdir chown -R user:sftp_admin /home/userdir/userdir chmod 2770 /home/userdir/userdir 这将为用户创build一个家,现在我有一个想法,可以工作,克朗。 这意味着服务器需要检查每分钟没有家的用户,然后在创build用户时,界面会平均冻结30秒,然后才能确认我不喜欢的帐户。 有没有人知道是否可以用sudoers做些事情? 或者任何其他的想法,欢迎… 谢谢你的时间!

Apache从httpsredirect到https

我正在尝试redirect,而没有从https://www.domain.com到https://www.domain.net的重写规则。 我有* .domain.net的通配符证书。 这会在我的error_log中产生以下警告 [警告] RSA服务器证书通配符CommonName(CN)`* .domain.net'与服务器名称不匹配! 这是有道理的,我明白为什么警告。 我想问一下是否有一种方法可以使用Redirect指令来完成上述操作而不需要警告。 这是我在ssl.conf中的虚拟主机: <VirtualHost *:443> SSLEngine on ServerName www.domain.net DocumentRoot /var/www/html/domain SSLOptions -FakeBasicAuth -ExportCertData +StrictRequire +OptRenegotiate -StdEnvVars SSLStrictSNIVHostCheck off </VirtualHost> <VirtualHost *:443> SSLEngine on ServerName www.domain.com ServerAlias www.domain.info Redirect permanent / https://www.domain.net </VirtualHost> 此外,如果有解决scheme,它可以用于从htps://domain.comredirect到htps://www.domain.com? 非常感谢!

configuration清漆后的Apache 403

我只是不知道在哪里看,还有什么可以做的。 设置清漆3.0后,我所有的虚拟主机都收到了403错误 Apacher日志: [错误] [客户端127.0.0.1]客户端被服务器configuration拒绝:/ etc / apache2 / htdocs 头: http://domain.com/ GET / HTTP/1.1 Host: domain.com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Cookie: __utma=106762181.277908140.1348005089.1354040972.1354058508.6; __utmz=106762181.1348005089.1.1.utmcsr=OTHERDOMAIN.com|utmccn=(referral)|utmcmd=referral|utmcct=/galerias/cocinas Cache-Control: max-age=0 HTTP/1.1 403 Forbidden Vary: Accept-Encoding Content-Encoding: gzip Content-Type: text/html; charset=iso-8859-1 X-Cacheable: YES Content-Length: […]

如何提高启动PHP + MySQL应用程序的可用性?

昨天,Rackspace DFW数据中心出现了几个小时的停顿,让我想到了在那里改善服务器结构的延迟行动。 到目前为止,我一直在使用一个CentOS实例来处理PHP + MySQL应用程序的基本LAMP设置。 所以昨天我的申请连续下了三个多小时,真是太糟糕了。 我想到: 至less有两个实例处理跨至less两个数据中心(Rackspace或不)的应用程序。 拥有至less两个MySQL主/从configuration实例来托pipe数据,至less分成两个数据中心。 在应用程序实例之前放置一个负载均衡器,以避免处理DNS传播,并能够按照我的意愿无痛添加或删除应用程序实例。 所以我的问题是: 上述三项措施如何发挥? 还有什么可以做的? 什么是没有停机时间的最佳方式? 如何处理代码部署 任何书籍/白皮书/等你可以推荐来帮助我在这里? 奖金:如何做到这一点? :P

禁用没有“关”值的Apache指令

我希望某些Apache指令(如SSLCACertificateFile)在某些位置启用,但在其他位置禁用。 例如, # Require client certificates for http://example.com/secure <Location "/secure"> SSLCACertificateFile /path/to/my/file SSLVerifyClient requried </Location> # Allow access to http://example.com/secure/exception without certificates <Location "/secure/exception"> SSLCACertificateFiles none # doesn't work SSLVerifyClient none # works </Location> 尽pipe如此,文档没有讨论SSLCACertificateFile指令的任何“off”值。

如何在Apache中启用mod_info?

我经历了Apache指南启用mod_info。 根据文档: 要configurationmod_info,请将以下内容添加到您的httpd.conf文件中。 位置/服务器信息SetHandler服务器信息 /位置 您可能希望在指令中使用mod_access来限制对服务器configuration信息的访问: 位置/服务器信息SetHandler服务器信息顺序拒绝,允许全部拒绝允许来自yourcompany.com位置 完成configuration后,通过访问http://your.host.dom/server-info获取服务器信息 在我的情况下,这个链接是不给任何信息。 HTTP 404没有find错误 有什么我需要安装为mod_info.c或什么的? 有什么我需要把AddModule或什么? 没有虚拟主机我得到下面的错误:文件不存在:/ usr / local / apache2 / htdocs /服务器信息[星期二2012年12月11日03:39:53] [错误] [客户端10.177.246.184]文件不存在: /usr/local/apache2/htdocs/favicon.ico 在错误日志中:文件不存在:/ usr / local / apache2 / htdocs / example1 / server-info我有3个虚拟主机。 其中一个默认使用example1作为Docroot目录。 我不知道这个页面(服务器信息)应该在哪里? 在服务器状态的情况下,它工作正常