Articles of apache 2.4

如何禁用Apache中的全局目录列表?

我有别名app.example.com/上传和虚拟主机app.example.com和主要网站xxxx和subdomain23.example.com和someotherhost.com等等等等… 我想要禁用目录浏览/列出每个域别名等。 我如何做到这一点单编辑?

为什么这个proxypass影响所有的域名?

我正在运行Apache,并在apache中有一个.conf文件作为site-enabled ,如下所示。 <Virtualhost blog.example.com:80> ServerName blog.example.com ServerAdmin [email protected] ProxyRequests Off ProxyPass /phpmyadmin ! ProxyPass / http://localhost:2368/ ProxyPassReverse / http://localhost:2368/ </Virtualhost> 正如你所看到的,我只需要点击blog.example.com来处理ProxyPass命令。 但是,它实际上影响所有其他域example.com , other.example.com 。 我在这里错过了什么? 如果这就是ProxyPass的工作方式,有没有办法告诉它忽略物理文件和目录? 其他网站启用(只有一个网站运行ruby,其余的遵循第一种forms): <VirtualHost other.example.com:80> ServerName other.example.com ServerAdmin [email protected] DocumentRoot /var/www/html/other ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <Virtualhost other2.example.com:80> ServerName other2.example.com ServerAdmin [email protected] DocumentRoot /var/www/html/rails/other2/public <Directory /var/www/html/rails/other2/public> AllowOverride all Options […]

WordPress和Apache 2.4安装麻烦:不能服务目录

我有一个魔鬼的时间让我的虚拟主机上的虚拟主机。 当我尝试访问我的虚拟主机时,我得到一个“403禁止您没有权限访问/在此服务器上”。 错误和一个“无法服务目录…”错误在我的error_log(见下文)。 为什么我得到“403禁止”? 我错过了一些东西,希望对你显而易见(不是我自然而然)。 谢谢你的帮助。 我安装了Fedora 20的最小安装(即,没有Gnome / KDE,但有很多的PHP软件包[710],所以不是那么简单)。 然后,我安装了Apache,并按照http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install进行了Wordpress安装。 从那以后,我一直在/ etc / httpd中试图find问题。 我有2.4版本的Apache,PHP 5.5.18,Fedora 20和Wordpress 4.0-1。 我在Apache中创build了我的虚拟主机,这里是我的错误日志中的错误(全部在一行中): [Sat Nov 15 20:38:16.067198 2014] [autoindex:error] [pid 6745] [client XX.XX.XX.XX:48419] AH01276: Cannot serve directory /usr/share/wordpress/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive 我一直在黑客攻击httpd.conf文件和我的虚拟主机的文件(在/etc/httpd/conf.d/myhostname.conf中find)无济于事。 有任何想法吗? 我包含了一个(缩写的)我的httpd.conf和我的虚拟主机的conf文件。 首先,虚拟主机: <VirtualHost *:80> ServerName […]

Apache – 删除HTTP 200状态的连接

有没有一种方法来configurationApache丢弃任何请求导致HTTP状态不是200(或可能是一个状态码列表)的连接? 这个想法是,而不是返回任何信息给黑客探查服务器,只是当一个无效的请求时,终止连接。 我正在考虑类似iptables DROP规则,但在应用程序层。 我意识到这不会替代其他安全措施(防火墙,反向代理,mod_security,访问控制,非默认错误页面等),但这将是一个额外的措施。

什么apache的VirtualHostconfiguration将通过SSL服务的唯一一个域?

我有多个域( example1.com , example2.com , … )托pipe在同一个IP上。 其中一个域( example3.com )有一个SSL证书,我想通过HTTPS提供服务,同时保持所有其他网站在HTTP上。 到目前为止,我已经设置并正常工作。 我的问题是https://www.example1.com (请注意)的请求正在通过example3.com (开始<VirtualHost *:443> )的apacheconfiguration部分处理,这会导致问题,因为这是Django的网站,除了其他事情,它会产生一个400错误的请求,因为example1.com不在Django的ALLOWED_HOSTS设置。 我知道SSL的本质意味着Host:头部在build立安全连接之前是未知的。 但有没有办法让Apache拒绝HTTPS的任何请求是不是 example3.com ? 我期望在SSL虚拟主机中使用ServerName指令来限制该部分仅仅是指定的主机,但仔细检查文档后 ,似乎只有基于名称的虚拟主机才是这种情况。 编辑:我已经尝试添加一个全部默认作为第一部分,如下所示: <VirtualHost *:443> ServerName default.only <Location /> Require all denied </Location> </VirtualHost> 这会导致以下错误: [Thu Dec 04 10:31:27.922801 2014] [mpm_event:notice] [pid 10498:tid 3074255488] AH00491: caught SIGTERM, shutting down [Thu Dec 04 10:31:29.928483 2014] [ssl:emerg] […]

Apache如何创build一个只能从本地访问的目录,还可以使用authenticated和valid-user

我试图做到这一点与要求本地和要求有效的用户,但看起来像要求本地覆盖有效用户。 使本地访问不需要进行身份validation AuthName "Authenticate" AuthType Basic AuthUserFile "/home/tmp/.htpassword" Require local Require valid-user 当我删除需要本地validation正在工作。 但它允许从外部访问。 所以如何configuration这个,所以我只能允许本地访问有效用户

什么是ModSecurity SecCollectionTimeout指令?

我在ModSecurity中出现一个反复出现的“失败的删除集合”错误消息时遇到了一些问题( 有关上下文,请参阅此讨论@GitHub )。 在讨论这个错误时,经常会提出SecCollectionTimeout指令可能会有一些影响。 阅读文档我只知道这个指令: 指定收集超时。 默认值是3600秒。 但是,我不完全了解“收集超时”是什么。 有人可以向我解释这个设置是什么吗? 提前谢谢了。

使用distro捆绑的LAMP是最好的select吗?

我想知道 – 使用发行版提供的LAMP堆栈或者自行安装它更好? 我的意思是,只要使用apt-get install apache2 (…)还是只下载软件,把它解压到你自己的目录下呢? 更好的定义 – 毕竟这是个难题。 这些LAMP堆栈将被放置在同一台机器上的许多服务之一,通过一些反向代理(nginx?)向世界开放。 我可能要结束使用两个或三个不同的Apache2实例(我应该?)。 我喜欢简单目录中包含的应用程序的可pipe理性。 泡芙,他们走了。 我也认为我可以很容易地创build新的用户,并将其限制在一个且只有一个目录中。 另一方面,作为一个新手,我有一种感觉,就是软件包pipe理人员以更安全的方式准备了一切,想到了很多我可能想不到的问题。 只用一个命令就可以更容易地掌握最新信息。 我的问题是 – 使用发行版默认包的方式去我的情况?

mod_security根本不起作用

我试图使mod_security工作,我在网上search了很多,并按照本教程来configurationmod_security(我所有的configuration文件都与本教程相同),当我运行httpd -M | grep -Ei '(evasive|security)' httpd -M | grep -Ei '(evasive|security)'输出 security2_module (shared) evasive20_module (shared) 所以扩展正在被加载,但它并没有阻塞任何东西,既没有在日志文件上写任何东西,我甚至将SecDebugLogLevel设置为9,并且debugging日志仍然是空白的。 我试图加载模块之前,其他人,在中间,几次重新启动Apache,什么都没有。 我正在使用亚马逊Linux(就像CentOS)和Apache 2.4 Prefork。

Apache总是将httpredirect到https

我在Ubuntu 12.04上运行Apache 2.4.7。 我有一个网站http://bharatkrishna.net/ ,这是在我家里跑掉一台机器。 我在路由器上转发了端口80和443。 正如你所看到的,当你访问http://bharatkrishna.net/时 ,它会自动被redirect到https://bharatkrishna.net/ 。 我不希望它被redirect到整个网站的https。 我本来打算只为一个特定的子url。 即。 像只有http://bharatkrishna.net/login应该是https,其余的应该是http。 我该怎么做? 这是我通过在线阅读一些教程在Apache上设置SSL的方法: •在/ etc / apache2 / sites-enabled /打开SSLEngine,设置证书位置 <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/ #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # SSL Engine Switch: # Enable/Disable SSL for this virtual host. SSLEngine on SSLCertificateFile /etc/apache2/ssl/www_bharatkrishna_net.crt SSLCertificateKeyFile /etc/apache2/ssl/bharatkrishna.net.key […]