我目前的httpd.conf文件看起来像这样: <VirtualHost *:443> DocumentRoot /var/www/html/www.example1.com ServerName www.example1.com SSLEngine on SSLCertificateFile /var/www/ssl/www.example1.com/certificate.crt SSLCertificateKeyFile /var/www/ssl/www.example1.com/private.key SSLCACertificateFile /var/www/ssl/www.example1.com/bundle.crt </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/html/www.example2.com ServerName www.example2.com SSLEngine on SSLCertificateFile /var/www/ssl/www.example2.com/certificate.crt SSLCertificateKeyFile /var/www/ssl/www.example2.com/private.key SSLCACertificateFile /var/www/ssl/www.example2.com/bundle.crt </VirtualHost> 我希望能够将“ServerName”存储在某种types的variables中,以便能够简化文件(如下所示): Define server_name = ServerName <VirtualHost *:443> DocumentRoot /var/www/html/${server_name} ServerName ${server_name} SSLEngine on SSLCertificateFile /var/www/ssl/${server_name}/certificate.crt SSLCertificateKeyFile /var/www/ssl/${server_name}/private.key SSLCACertificateFile /var/www/ssl/${server_name}/bundle.crt </VirtualHost> 有什么办法可以做这样的事吗? 我环顾四周,找不到任何解决办法,但我可能会采取错误的做法。
我有一个简单的Apache虚拟主机: <VirtualHost *:80> ServerName hello.local ProxyPass / http://localhost:8810/ ProxyPassReverse / http://localhost:8810/ </VirtualHost> 所有对hello.local的请求都被代理到http://localhost:8810/ 。 我想要做的是向http://localhost:8810/的http请求中添加一个头部,并使用由外部命令返回的值。 就像是 Header set MyHeader ${/usr/bin/an_external_program} 任何方式来完成这个?
我正在使用Apache 2.2.29的网站。 Apache既可以为Drupal提供页面,也可以作为内部应用程序服务器的反向代理。 出于安全考虑,我们希望将标志HttpOnly添加到所有发送给客户端的cookie中。 为了做到这一点,我已经在Apache中设置了以下规则 Header edit Set-Cookie "(?i)^((?:(?!;\s?HttpOnly).)+)$" "$1; HttpOnly" Header edit Set-Cookie "(?i)^((?:(?!;\s?secure).)+)$" "$1; secure" 而且,对于一些cookie,这工作正常,但其他人没有被修改。 看看响应头,我看到以下内容: HTTP/1.1 200 OK Date: Thu, 20 Nov 2014 22:50:01 GMT Expires: Sun, 19 Nov 1978 05:00:00 GMT Last-Modified: Thu, 20 Nov 2014 22:50:01 GMT Cache-Control: store, no-cache, must-revalidate Cache-Control: post-check=0, pre-check=0 Set-Cookie: SESSbfb02014bca2e49545c2cacd8a8cfcfa=perqn1l3mn2saselmabnn4vla7; expires=Sun, 14-Dec-2014 02:23:21 […]
我目前有一个CentOS系统成功地将相关的mod_security动作logging到审计日志文件中。 以下是我的configuration: <IfModule mod_security2.c> SecRuleEngine On SecAuditEngine RelevantOnly SecAuditLog /var/log/httpd/modsec_audit.log SecDebugLog /var/log/httpd/modsec_debug.log SecDebugLogLevel 0 SecRequestBodyAccess On SecDataDir /tmp SecTmpDir /tmp SecPcreMatchLimit 250000 SecPcreMatchLimitRecursion 250000 </IfModule> 这会logging所有由于SecAuditEngine RelevantOnly设置而导致mod_security拦截/阻止请求的SecAuditEngine RelevantOnly 。 但是,我希望它另外logging提交给服务器的所有POST数据(不pipe状态)。 我可以通过设置SecAuditEngine On来实现这一点,但是这会logging所有的GET和POST数据,这是过分的。 我基本上想省略所有的GET数据,除非请求被截获。 任何人都可以build议如何做到这一点?
我的httpd-vhosts.conf文件如下所示: <VirtualHost *:80> DocumentRoot "/www/foo/htdocs" ServerName foo </VirtualHost> <VirtualHost *:80> DocumentRoot "/www/bar/htdocs" ServerName bar </VirtualHost> <VirtualHost *:80> DocumentRoot "/www/baz/htdocs" ServerName baz </VirtualHost> 注意模式? 有没有办法减less重复,或者我坚持有一个单独的VirtualHost条目为每个网站?
我build立了一个可以通过Apache / DAV访问的subversion服务器,并且在两天前搞砸了存储库文件许可之后,我开始想知道是否有更好的方法来做到这一点,而不是像我这样做。 这个版本库是由一个专门的用户和组织拥有的,Apache作为习惯的www:www用户运行,因此它没有对版本库的写入权限。 到目前为止,我的解决scheme是将www用户添加到svn组中,并确保存储库中的文件是可写组的。但是从现在起六个月,我将创build一个新的存储库,忘记修复文件权限,只要有人试图提交一些东西,就会收到一些电子邮件。 有没有其他方法可以做到这一点? 也许迫使svnadmin创build存储库组可写在第一个地方? (如果你想知道服务器是FreeBSD 6.2的话)
我有许多虚拟主机的域名映射到一个单一的Apache服务器(我们称之为server1)。 在某些情况下,某个虚拟主机的所有URL应该由不同的服务器来服务(我们称之为server2)。 什么是最简单的方法来实现呢? 我可以简单地将server2设置为使用与server1相同的基于名称的虚拟主机设置,然后依靠server1的X-Forwarded-Host头(即server2是否只根据这些头进行正确的操作)? “同名虚拟主机设置”是指“真正的”域名(即映射到server1的IP的域名)。
最近,我注意到我的apache在我的Linode服务器上使用了荒谬的内存(比以前多了80MB),重新启动apache2似乎解决了这个问题。 我通过Apache运行SVN,以及服务器上的mysql和tomcat,但似乎都没有问题。 如何debuggingapache在丢失内存的地方? 除了SVN之外,它实际上只是托pipe一个WordPress博客,所以我没有看到漏洞在哪里发生。 我使用了Ubuntu 8.04版本库的默认安装。 任何帮助?
我今天早上意外执行了错误的更新,现在我的/ var / www权限都是错误的。 我无法访问任何东西了,Apache总是会说我没有权限查看这个页面,比如: 您无权访问/在此服务器上。 (甚至在将所有内容都改为777之后,或者将其改为www数据) 有没有人有什么问题的线索?
所以,我的整个应用程序运行在Apache上就好了。 不过,我想testing一下,如果我把所有的静态文件通过nginx,每秒的请求增加。 我发现这个线程︰https: //stackoverflow.com/questions/869001/how-to-serve-all-existing-static-files-directly-with-nginx-but-proxy-to-apache-t 但是我有几个问题。 我对nginx是完全陌生的,所以我不确定把configuration放在哪里。 (该文件位于/etc/nginx/nginx.conf,但我不知道是否只是将代码添加到底部或什么?) 另外,如何让两台服务器同时运行? 是因为他们都听港口80吗? 现在我必须阻止一个开始另一个,而且就我所知。 谢谢你的帮助。