Articles of apache 2.2

多个子域,只有一个使用端口80的SSL

我正在运行一个Apache2服务器,并在/ etc / apache2 / sites-available的单独文件中定义了三个子域 我需要其中一个子域在端口80上进行SSL保护,以便应用程序正常工作。 由于我无法控制的情况,80端口是必需的。 其他子域也在端口80上。 现在,在Apache中启用所有子域时,SSL子域不会运行SSL。 如果我禁用SSL子域WORKS上的其他子域SSL。 有没有办法来解决这个问题?

mod_rewrite改变大小写,即使不匹配RewriteCond?

我的MediaWiki有一个非常奇怪的问题,我想要mywiki.org/MyArticleforms的mywiki.org/MyArticle 。 现在我使用下面的代码大部分工作,但它神秘地不能显示标志了。 RewriteEngine On # don't rewrite valid requests to files and directories RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d # mywiki.org/MyArticle gets rewritten to mywiki.org/index.php/MyArticle RewriteRule ^/(.*)$ /index.php/$1 [L,QSA] 现在,当我在浏览器中键入mywiki.org/img/logo.jpg ,地址变成了http://wiki.geoknow.eu/Img/logo.jpg (大写I),我进入了空白文章页面,但是图像肯定是存在的(在我的文档根目录下的img文件夹): /var/www/mywiki.org$ ls img logo.jpg 到目前为止这么糟糕。 但现在它变得非常疯狂:当我添加RewriteCond %{REQUEST_URI} !^/.*\.jpg我的地址仍然被重写,并且我的访问日志说 – – [05/Dec/2012:16:30:21 +0100] "GET /Img/geoknow_logo.jpg HTTP/1.1" 404 509 "-" "Mozilla/5.0 (X11; Linux x86_64; […]

为什么编译:无caching不能在IE浏览器上工作?

在我的雇主Web服务器上,我们有200多个PHP应用程序使用这种代码来允许下载文件: header('Content-Disposition: attachment; filename="file.pdf"'); header('Expires: 0'); header('Pragma: no-cache'); 它在旧的服务器上运行良好(Debian Lenny,PHP 5.2,Apache 2.2.9),但在新的IE8(Debian Squeeze,PHP 5.2,Apache 2.2.16)上失败。 其他浏览器是罚款。 我们只通过HTTPS访问文件,而不是HTTP。 我们没有发现conf文件有任何区别,但是用private来代替no-cache来纠正IE的问题。 我们在哪里可以理解差异在哪里?

apache proxyremote和http

ProxyRemote语法是: <remote-server> = <protocol>://<hostname>[:port] 所以,我必须把主机名之前的协议。 但是我的代理服务器是xyzn:1234 (没有http ) 而当我以这种方式使用proxyremote时,它不起作用。 (什么都没发生) ProxyRequests On ProxyRemote http http://xyzn:1234 如果我从代理url中删除http:// ,Apache将返回一个错误: ProxyRemote: Bad syntax for a remote proxy server 如何解决? 谢谢。

放置在.htaccess中的mod_perl自定义configuration指令不起作用,并且存在<Location>

我试图完成Redmine的function请求#2693:使用Redmine.pm来validation任何目录 (1)。 我对这些事情没有太多的知识,需要帮助。 Redmine使用mod_perl模块Redmine.pm进行authentication和授权。 该模块定义了几个自定义configuration指令。 我已经成功修改了(1)中的修补程序,并且在所有configuration位于<Location>时它都能正常工作: <Location /digischrank/test> AuthType basic AuthName "Digischrank Test" Require valid-user PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=SomedaTaBAse;host=localhost" RedmineDbUser "SoMeuSer" RedmineDbPass "SomePaSS" RedmineProject "digischrank" </Location> 但是当我在.htaccess文件中移动这些指令( RedmineProject ,见(1))时,Redmine.pm没有看到它! 我尝试将<Location>更改为<Directory>并添加AllowOverride All 。 .htaccess指令是可见的,但来自<Directory>其余指令不是。 我不想将所有指令移到每个.htaccess 。 除了<Directory> ,再添加<Location>时,只有<Location>中的指令是可见的。 据我所知,指令应该合并。 我想念什么?

让apache使用ldap组和文件系统组信息

我们有一个Apache服务器,它服务于一个特定的目录,并提供一个文件列表。 在这个目录中,每个子目录都由某个用户组(在文件系统级别)拥有。 用户组由ldap中的posixGroup确定。 有没有什么简单的方法可以告诉Apache基于文件系统权限来授权访问,就像用户要从shell访问文件系统一样? 我希望能够简单地添加用户/组/目录,而不必在Apache的conf中添加另一个Directory或Location指令?

如何为每个域虚拟主机分配唯一的外部IP地址

我的托pipe服务提供商给了我一堆外部IP地址和分配给每个外部IP的内部IP地址。 我能够分配主IP地址和第二个,但其他人似乎不能正常工作,因为我不能让他们显示正确的网站。 当我使用第三或第四个IP地址分配一个站点时,当我尝试通过浏览器访问该域时,它会加载另一个通过主IP地址分配的站点。 鉴于在同一台服务器上显示的网站之一是一个好的迹象,因为外部IP地址实际上是指向正确的服务器,但似乎虽然httpd.conf和Conf.d其中包括的其他conf文件包括错误地设置。 我得到的设置是… <VirtualHost [Internal IP Address]:80> DocumentRoot /var/www/html/directory ServerName domain.com.au ServerAlias www.domain.com.au etc…. </VirtualHost> 最主要的是,它只能在两个域中工作,并且我已经为httpd.conf所有IP内部地址设置了NameVirtualHost和Listen 有什么我失踪?

阿帕奇死了 怀疑是ulimit,但不能重现

阿帕奇昨晚去世了。 错误日志显示这一点 [alert] (11)Resource temporarily unavailable: setuid: unable to change to uid: 48 浏览互联网,每个人似乎都认为这是在Linux的ulimit问题。 如果我理解正确,ulimit有一个默认的限制到任何非root用户并发进程的数量为1024.如果达到用户(在这种情况下,apache)的最大数量,它不能创build更多的进程。 这就解释了为什么当它试图产生一个新的孩子时,它不能设置给apache用户。 昨天晚上,我们有一个networking应用程序的用户在大约1分钟的时间内向同一页面发出了1100多个GET请求,这就是服务器死亡的时间。 我的Apacheconfiguration文件有这样的: <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 2000 MaxClients 2000 MaxRequestsPerChild 4000 </IfModule> KeepAlive On MaxKeepAliveTimeout 5 KeepAliveTimeout 5 如果我的MaxClients是2000,MaxSpareServers是20,那么这意味着为了让Apache达到进程的限制,它将不得不有1000多个繁忙进程,我根本没有看到发生这种情况,考虑到这些GET请求很小,很容易处理20-30个请求。 最重要的是,MaxRequestsPerChild被设置为4000,所以它不应该产生这么多新的孩子,对吧? 那么,为什么它不能setuid,这真的是罪魁祸首吗? 我已经使用了Apache的ab工具来尝试在一个不太强大的本地构build中重现这一点,我不能。 即使是function不太强大的硬件,也可以在一分钟内处理好几千个连接,性能也不错 如果我尝试通过networking同时访问服务器,它会变得糟糕,但Apache不会陷入困境。 所以这是我的问题: 有没有更好的方式来configurationprefork模块? 我们只是从旧的服务器迁移到这个较新的服务器。 老一点的ServerLimit和MaxClients设置为512.我想也可以设置2000,以避免在可预见的将来再次改变它。 我已经尝试调整ulimit nproc到一个低数字来尝试和重现错误。 在limits.conf中,我设置了* hard nproc 15 […]

是否有可能写几个虚拟主机的共享configuration?

我的意图是避免了很多重复的代码。 基本上我想要做的是使用相同的SSLconfiguration块的几个VirtualHost条目… <IfModule mod_ssl.c> <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options […]

UFW在Ubuntu 12.04上阻止SSL连接Varnish / Apache2

我已经在Ubuntu 12.04服务器上安装了Virtualmin,并且在Apache(:8000)前面使用了Varnish(:80)的LAMP栈。 但是,启用UFW后,我无法访问https。 当我禁用UFW时,一切正常。 以下是当我尝试通过https访问网站时显示的UFW日志logging: Dec 14 05:42:29 localhost kernel: [64491.327263] [UFW BLOCK] IN=eth0 OUT= MAC=e4:11:5b:e5:ef:8c:00:d0:02:8f:f0:00:08:00 SRC=MY_IP_ADDRESS DST=SERVER_IP_ADDRESS LEN=52 TOS=0x00 PREC=0x00 TTL=115 ID=2524 DF PROTO=TCP SPT=56430 DPT=20000 WINDOW=8192 RES=0x00 SYN URGP=0 这是我的UFW规则集: $ ufw status Status: active To Action From — —— —- 2221 ALLOW Anywhere 10000 ALLOW Anywhere 80 ALLOW Anywhere 21 ALLOW Anywhere […]