Articles of apache 2.4

“redirect永久”与mod_rewrite RewriteRule之间的区别

这是一个Apache httpd 2.2服务器。 我们要求通过HTTPSencryption这个networking服务器。 当Web客户端访问我的网站http://www.example.org/ $ foo(端口80)时,我想将他们的请求redirect到https://www.example.org/ $ foo的HTTPSencryption网站。 似乎有两种常见的方法来做到这一点: 第一种方法使用mod_alias中的“ Redirect ”指令: <VirtualHost *:80> Redirect permanent / https://www.example.org/ </VirtualHost> 第二种方法使用mod_rewrite: <VirtualHost *:80> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> “redirect永久”和mod_rewrite节之间有什么区别? 一个比另一个更好吗?

虚拟主机不能在不同的端口上工作

我试图在运行centos7.1的单个服务器上托pipe我的网站。 我能够在端口80上的虚拟主机,但是当我将second-site端口更改为8080它指向first-site 。 但是,对于URL http://62.210.xx.xx:8080/其正常工作,指向second-site 。 我正在这样做: httpd.conf文件 Listen 80 Listen 8080 also tried Listen 0.0.0.0:80 Listen 0.0.0.0:8080 but same commented out for apache 2.4 #NameVirtualHost 62.210.xx.xx:80 #NameVirtualHost 62.210.xx.xx:8080 ServerAdmin root@localhost #first-site.com <VirtualHost 62.210.xx.xx:80> ServerName first-site.com ServerAlias www.first-site.com DocumentRoot /var/www/first-site </VirtualHost> #second-site.com <VirtualHost 62.210.xx.xx:8080> ServerName second-site.com ServerAlias www.second-site.com DocumentRoot /var/www/second-site </VirtualHost> netstat -tulpn | grep […]

不能截断/清除apache上的error.log,但可以用nano手动完成

我试图用命令清除我的apache服务器上的error.log文件的内容 sudo >error.log sudo truncate -s0 error.log 但在这两种情况下,我得到了-bash: error.log: Permission denied 。 我在停止apache的时候尝试了同样的事情,但仍然得到了相同的信息。 之后,我试图用sudo nano error.log清除它,并能够删除所有内容。 那为什么我不能正确地清理日志呢?

“服务器应该是SSL感知的,但没有configuration证书”

Ubuntu 14.04 Apache 2.4.7 w / mod_ssl 我正在尝试安装(单个)域证书。 出于某种原因,apache不接受它,并拒绝启动,如果相关的网站启用。 尽pipe大量使用Google,但我无法理解错误信息。 为什么说没有configuration证书? 它设置在虚拟主机中,并指向正确位置的crt文件。 error_log中 [Tue May 19 18:11:08.123857 2015] [ssl:emerg] [pid 10040:tid 140146576725888] AH02240: Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0) [Tue May 19 18:11:08.123894 2015] [ssl:emerg] [pid 10040:tid 140146576725888] AH02312: Fatal error initialising mod_ssl, exiting. 我曾尝试过: 重新检查虚拟主机语法和证书和密钥的path 双重证书是chmoded 644和key是chmoded 600 […]

如何从httpd apache服务器的JKS文件生成.key和.crt文件

我只有mycert.jks文件。 现在我需要提取并生成.key和.crt文件,并在apache httpd服务器中使用它。 SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key 任何人都可以列出完成这一切的所有步骤。 我search,但没有具体的例子来理解,混合和匹配的步骤。 请build议! [编辑]从下面的答案按照下面的步骤后得到错误。 8/‎21/‎2015 9:07 PM] Sohan Bafna: [Fri Aug 21 15:32:03.008511 2015] [ssl:emerg] [pid 14:tid 140151694997376] AH02562: Failed to configure certificate 0.0.0.0:4545:0 (with chain), check /home/certs/smp_c ert_key_store.crt [Fri Aug 21 15:32:03.008913 2015] [ssl:emerg] [pid 14:tid 140151694997376] SSL Library Error: error:0906D06C:PEM routines:PEM_read_bio:no start line (Expecting: TRUSTED CERTIFICATE) […]

带有Apache 2.4的RFC 2616

我使用Apache 2.4.3作为反向代理,因为它的广告符合RFC 2616.我的应用程序使用这样的头来启用代理上的caching: Cache-Control: public, s-maxage=0 Expires: … (+1 day) X-Group: A Vary: X-Group ETag: W/"foo1" 在第一个请求加热caching之后,如果我的应用程序更改为响应此: Cache-Control: public, s-maxage=0 Expires: … (+1 day) X-Group: B Vary: X-Group ETag: W/"foo2" 如果来自Apache的If-None-Match标头匹配源产生的ETag,应用程序将以304 Not Modified进行响应。 然而,Apache然后caching第二个200响应,并用新的响应replace “foo1”logging,而不是用不同的ETagcaching两个响应。 因此,取代If-None-Match: W/"foo1", W/"foo2" ,下一个重新生效请求就是If-None-Match: W/"foo2" 。 所以caching不断地错过,而不是总是得到命中。 从RFC 2616第12.1节: 但是,源服务器并不局限于这些维度,而是可以根据请求的任何方面来改变响应,包括请求头字段之外或本规范未定义的扩展头字段之内的信息。 我已经尝试了Vary的以下组合: Vary: X-Foo Vary: * Vary: User-Agent 我也尝试了强和弱的ETags,无论我不能让Apache同时caching两个响应,它总是比以前节省更多。 如果它不能保存一页以上的方差,那么ETag是无用的,Last-Modified将是一样的好。 从Apache […]

`apache2ctl restart`让Apache忘记了cgi-bin

在我的Debian机器上(运行由Debian打包的apache,包2.4.7-1),每次apache通过apache2ctl restart或apache2ctl graceful apache2ctl restart ,它都会忘记我的cgi-bin目录: me@aram:~$ sudo apache2ctl graceful-stop me@aram:~$ sudo apache2ctl graceful httpd not running, trying to start me@aram:~$ curl -s http://localhost/cgi-bin/hello Hello world, from a cgi script. me@aram:~$ sudo apache2ctl graceful me@aram:~$ curl -s http://localhost/cgi-bin/hello <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /cgi-bin/hello […]

有什么我可以做些什么来减less我的静态http请求的等待时间(在铬的networking面板)?

我正在使用apache 2.4.9在Ubuntu 14.04上运行amazon aws ec2微型实例。 拥有这个实例的原因是为了在testing和解决一些错误之前进行项目。 目前只有less数人(<10人)不定期地使用该项目(每天<20次)。 在我的项目中,我使用缩小,所以我只有几个静态内容:像1个CSS文件,可能是3个JS文件。 他们不是很大,所有文件的总和低于300Kb。 回顾瀑布图,从我的项目加载, 我注意到,在等待阶段花费了大量的时间(如果我将删除它,最有可能的网站会加载2倍以上)。 我也知道每个阶段对应什么(我甚至在这里回答高度相关的问题 ),我不知道我能做些什么来减less等待时间 。 在我的情况下,像css / js / img这样的静态资源增加了大量的等待时间,所以与编写更高效的代码无关。 我还在这里发现了另一个高度相关的问题 (这实际上是我的问题),并试图通过切换HostnameLookups Off但它没有改变任何东西。 我没有/etc/httpd/conf/httpd.conf ,因此我将它添加到/etc/apache2/sites-available/000-default.conf 。 我的configuration中也没有像LogFormat这样的东西,所以我跳过了这部分。 那么有什么我可以做的,以减less这个时间? 当我回顾一下从服务器位置收集到的同样的图表时,我看到等待时间有小幅的改善,但情况依然如此。 我明白,我可以搬到更好的服务器,更好的硬盘/内存/ CPU,但这是显而易见的。 知道有这么多的Apacheconfiguration参数,我认为这可能是有什么调整。 PS谢谢JakeGould我看着apache2.conf并修改它(而不是000-default.conf ,如前所述)。 我也修改了KeepAliveTimeOut到3和MaxKeepAliveRequests到20更适合我的网站。

似乎无法在Apache中设置AcceptPathInfo

我试图将一个ExpressionEngine网站迁移到一个新的服务器,似乎已经遇到了障碍。 对于所需的function,EE要求打开AcceptPathInfo指令,对于我来说,似乎无法让Apache协作。 服务器运行Fedora Core 18,Apache 2.4.3和PHP 5.4.11 Apache模块。 我已经尝试在我的虚拟主机configuration中设置以下内容: <VirtualHost *:80> DocumentRoot /home/mysite/public_html ServerName mysite.com <Directory /home/mysite/public_html/> AcceptPathInfo On Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost> 但是当我使用phpinfo()debugging时,它仍然不显示path_info,orig_path_info或orig_path_info_translated(我相信这是由于AcceptPathInfo指令被打开而产生的)。 我也尝试在我的.htaccess文件中设置指令AcceptPathInfo On,但仍然无济于事。 我一直在经历Dev和Live环境之间的设置,似乎开发服务器正在使用FastCGI运行PHP并使用cgi.fix_pathinfo。 通常情况下,我对自己的httpd.conf和php.ini做了修改,但是在这一点上,我已经远远低于兔子洞了。 我在这里错过了什么?

采用混合身份validation/匿名访问的Apache 2.4 + SVN authz身份validation

我使用的是Apache 2.4,我希望在不使用mod_access_compat的情况下使用它。 我试图服务于SVN仓库,访问控制由mod_authz_svn处理。 我想要在回购站内的一些回购或位置具有只读的匿名访问。 我想要其他回购或地点要求基本authentication。 Apache 2.4不再支持Satisfy all语法,但是,mod_authz_svn似乎期望它。 这应该如何在Apache 2.4上configuration? Apacheconfiguration: <Location /svn> DAV svn SVNParentPath /usr/projects/svn AuthType Basic AuthName "SVN repository" AuthUserFile /usr/project-config/etc/svn-auth-file AuthzSVNAccessFile /usr/project-config/etc/svn-access-control Require valid-user </Location> SVN的访问控制: # cat etc/svn-access-control [/] antiduh = rw [openprojects:/] * = r antiduh = rw 我有5个回购,openprojects是唯一一个我想匿名只读访问。 我似乎无法得到这个工作。 即使是我可以find的最新的文档 mod_authz_svn继续使用Satisfy all 。