我写了这个configuration限制访问/var/www/news.html : <VirtualHost *:80> ServerName example.com DocumentRoot /var/www/ <Directory /var/www/> Order deny,allow Allow from all Options FollowSymLinks </Directory> <Files /var/www/news.hmtl> Order allow,deny Deny from all </Files> </VirtualHost> 但它仍然打开example.com/news.html 。 我已经通过显式限制访问URL example.com/news.html来解决这个问题: <Location /news.html> Order allow,deny Deny from all </Location> 当将URLparsing为path相对的DocumentRoot时,似乎所有的<Directory>和<Files>规则都被一些隐含的<Location>所覆盖。 这是否是真的,我应该考虑DocumentRoot喜欢关于一个公众可见的地方?
我的Apache是限制每个虚拟主机的连接。 不知道这是否有什么关系,但我使用的是NameVirtualHost。 这里是我的configuration的一部分我看不出有什么问题: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> 它将连接排队,以便每个请求在彼此之后排队,使得所有事情都需要更长的时间才能加载! 编辑:这里是所有正在加载的模块 LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module […]
我想为特定的IP设置一些环境,如何在Apache中做到这一点?
所以我设置了一个Apachevariables,我想使用该值来设置额外的variables。 这是可能的,我尝试了各种方法来获得这个工作 SetEnv URL_STATIC http://www.static.com 不起作用 SetEnv URL_STATIC_MORE %{ENV:URL_STATIC}/path/path 也不工作:( SetEnv URL_STATIC_MORE ${URL_STATIC}/path/path 理想情况下,当所有的说法和完成时,我想URL_STATIC_MORE是“ http://www.static.com/path/path ”。 更新: 啰嗦的原因,我想要做的是创build一个链接,我可以在HTML / SSI中使用。 我没有在我的服务器上的PHP,这不在我的控制之下。 所以,我想能够使用 <a href="<!–#echo var="ONE_VARIABLE_FOR_URL" –>">blah</a> 而不是 <a href="<!–#echo var="ROOT_URL" –><!–#echo var="PATH_URL" –>">blah</a> 再说一遍,我没有PHP可用,而且我必须为成千上万的页面做这个工作,所以把它放在.htaccess中是有道理的。 我也有多个根URL,所以我的configuration最终将如下所示: SetEnv URL_ROOT_CUSTSVC http://customerservice.company.com SetEnv URL_ROOT_CORPORATE http://corp.company.com SetEnv URL_ROOT_PRODUCTS http://products.company.com SetEnv URL_ROOT_CUSTSVC_1 ${URL_ROOT_CUSTSVC}/path/1 SetEnv URL_ROOT_CUSTSVC_2 ${URL_ROOT_CUSTSVC}/path/2 SetEnv URL_ROOT_CUSTSVC_3 ${URL_ROOT_CUSTSVC}/path/3 SetEnv URL_ROOT_CORPORATE_1 […]
最近转移到新的服务器与CentOS 5.4和64位,而不是我们的旧的32位。 现在有了双处理器和更高的内存。 但是我意识到,apache一直在大量占用内存,有时会导致系统交换。 目前的设置在前面有Nginx 1.0.8来提供静态内容,Apache 2.2提供dynamic内容(PHP)。 我也安装了APC。 什么可能导致这种内存使用率高峰? 我尝试调整configuration文件的Apache,但它会工作,如果我把某些指令到一个荒谬的低数字。 在旧机器上之前,我可以使用默认设置,对于所有的apache进程,内存使用量不超过260MB: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> 但现在新机器正在使用这个高内存使用率,它可以得到高达600MB +: <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 20 MaxRequestsPerChild 500 </IfModule> APC设置如下: extension = apc.so apc.enabled=1 apc.shm_segments=1 apc.optimization=0 apc.shm_size=64M apc.ttl=0 apc.user_ttl=7200 apc.num_files_hint=1024 apc.mmap_file_mask=/tmp/apc.XXXXXX apc.enable_cli=1 apc.cache_by_default=1 […]
我的httpd.conf使用MultiViews选项来为诸如http:// server / blog之类的URL提供HTML文件。 这工作正常,除非有相同名称的目录 – 然后Apache将尝试服务的目录。 有什么办法确保blog.html优先于blog /,或者更确切地说:我可以使Apache进程内容根据MultiView进行协商,但是匹配的实体(目录)是否存在? 在nginx中,我可以明确地做到这一点: try_files $uri $uri.html $uri/ =404;
我不知道发生了什么,但是有时候(经常在最后一天)如果我尝试打开我的网站(托pipe在我的专用服务器上) 该网站花费太多时间来显示。 然后唯一的解决办法是用经典的debian命令重新启动apache: /etc/init.d/apache2 restart 之后,我的网站立即显示,当我在我的浏览器中打开它。 我有4GB的ram和Core 2 Duo @ 2.33 GHz的 debian 64位 Apache 2的设置如下: Timeout 10 KeepAlive Off <IfModule mpm_prefork_module> StartServers 90 MinSpareServers 5 MaxSpareServers 20 ServerLimit 90 MaxClients 90 MaxRequestsPerChild 0 </IfModule> Error.log在"[error] favicon.ico not found"旁边没有任何显示"[error] favicon.ico not found" 重启top命令之后是: top – 17:53:43 up 129 days, 6:06, 1 user, load average: 0.18, […]
2.2文档声明ExpiresDefault可以放在服务器configuration,虚拟主机,目录和.htaccess中。 它没有提到位置 。 我有一个mod_perl服务器,我希望大部分或全部的非dynamic内容(jpg,css,js等)“不经常”过期。 但是我希望所有的mod_perl生成的页面过期“现在”。 我的configuration似乎正在工作,但我想确保我不会错过任何东西,因为它是无证的。 ExpiresActive on ExpiresDefault "access plus 1 month" <LocationMatch ^/app/.*> ExpiresDefault "now" </LocationMatch>
我正在尝试将保持活动的连接closures的请求,以在Apache中的子文件夹,但是当我重新加载configuration我得到以下错误: KeepAlive not allowed here 这是我的虚拟主机configuration: <VirtualHost *:80> ServerAdmin [email protected] ServerName example.com DocumentRoot /srv/www/mysite DirectoryIndex index.html <Location /subfolder> KeepAlive Off </Location> </VirtualHost> 我也试过使用<Directory> ,但是也没有去那里。 有任何想法吗? 我宁愿不把整个网站的保持活跃状态…
我有两个域(siteA.com和SiteB.com),指向同一个networking服务器,我想为每个显示不同的网页。 我迄今采取的步骤是: 将默认站点(siteA)复制到站点B. 1) sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/siteB 2) sudo vim /etc/apache2/sites-available/siteB <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/siteB <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/siteB> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Indexes Order allow,deny allow from all </Directory> </VirtualHost *:80> 然后我在/ var / www / siteB下创build了一个样例index.html。 但是,当我加载我的域名siteB.com我仍然被定向到/var/www/siteA 。 这是为什么? 我还必须将/etc/apache2/sites-available/default重命名为/etc/apache2/sites-available/siteA吗? 更新: 感谢下面的答案,似乎我已经忘记旁边启用该网站还另一个条目: <VirtualHost […]