Articles of virtualhost

Apache大量虚拟主机&suexec&fcgid

我遵循了Falco的教程 ,现在所有的东西都可以按照他们的相关目录( /var/www/john和/var/ww/alice )为2个用户(例如john和alice)按预期工作。 现在,我想进入下一个层次:不是在/etc/apache2/sites-available/<username>上定义不同的虚拟主机,而是重新启动Apache,我需要dynamicconfiguration大容量虚拟主机( http://httpd.apache.org /docs/2.2/vhosts/mass.html )。 说,我的DNS服务器logging: another.site.example.com ,我想它的主目录在/var/www/another.site/web 。 问题是suexec和mod_fcgid的所有这些configuration设置。 我结束了我的httpd.conf草稿(或者我应该创build一个像/etc/apache2/sites-available/mass_virtual ): NameVirtualHost *:80 #default virtual host <VirtualHost *:80> ServerName www.example.com ServerAlias example.com ServerAdmin [email protected] DocumentRoot /var/www/root/web/ <IfModule mod_fcgid.c> SuexecUserGroup web-admin web-admin <Directory /var/www/root/web/> Options +ExecCGI Options -Indexes AllowOverride All AddHandler fcgid-script .php FCGIWrapper /var/www/php-fcgi-scripts/root/php-fcgi-starter .php Order allow,deny Allow from all </Directory> […]

如何跟踪高CPU Apache进程到特定的虚拟主机

查看top的输出,我注意到,间歇性地有一个或两个Apache进程消耗大量的CPU – 任何50%到90% CPU使用率的峰值每隔10秒左右就会相当快。 还有其他各种Apache进程正在运行,消耗了2%-4% 我研究了所有尝试追踪哪个虚拟主机/网站负责这些过程的各种方法。 但是,因为他们来得及迅速,我找不到一个可靠的方法来做到这一点。 我试过了lsof ,同时也查看了server-status的输出,但是由于进程持续时间不长,进程ID被重新使用,并且不可能将其绑定到造成问题的虚拟主机。 例如,如果我在有问题的进程ID上运行lsof ,它会列出十几个不同的虚拟主机日志文件,它们在最后几秒内共享该进程ID。 我确信有一个虚拟主机有问题,但我不知道哪一个虚拟主机。 我也检查了MySQL慢查询日志,这并没有显示任何有趣的东西。

又一个(13)权限拒绝了Apache2服务器上的错误

我只是无法弄清楚。 我在Ubuntu 10.04 i386服务器上运行apache2。 每当我访问我的服务器(有一个IP地址,并连接到互联网与静态IP xxx.xxx.xxx.xxx),这不是问题)在浏览器, mysub.domain.edu (在这里重命名),我得到以下: Forbidden You don't have permission to access /index.html on this server apache2错误日志证实了这一点: [Mon Apr 18 02:38:20 2011] [error] [client zzz.zzz.zzz.zzz] (13)Permission denied: access to / denied 我会尽力在下面提供所有必要的信息: 1)/etc/apache2/httpd.conf的内容 DirectoryIndex index.html index.php 2)/ etc / apache2 / sites-available / default的内容 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /home/myusername/htdocs <Directory /> […]

如何在两个子网之间使用VirtualBox作为没有NAT的路由器?

我的主机位于192.168.2.0/24子网,我想与VirtualBox中的各个主机build立一个10.0.0.0/8networking,彼此通信。 所以VirtualBox应该充当这两个networking之间的路由器。 现在在VB中,我可以select不工作的桥接networking和我不想要的NAT,因为我只想要一个没有NAT的普通子网。 我怎么能做到这一点? 可能吗?

使用Passenger和VirtualHosts的多个Rails站点?

我想要做的是从工作中的服务器机器运行多个Rails应用程序。 我们没有多个主机名的框。 我们想要托pipe一些rails应用程序以及我们的php应用程序。 目前用户可以连接http:// computername / app / 。 如何托pipe多个Rails应用程序并保持此结构? 看来Passenger需要使用VirtualHosts,但我只有localhost:80。 是否有可能在单个VirtualHost上托pipe多个Rails应用程序? VirtualHosts有DocumentRoot指令,有没有办法指定哪个主机名目录被监听? 即/ computername /等等/ 希望很清楚。 谢谢。

全局Apache别名,忽略虚拟主机

我有一个全球入口 Alias /.well-known/acme-challenge /var/www/letsencrypt/.well-known/acme-challenge/ 在我的apacheconfiguration中,在任何虚拟主机之外。 这样,以上别名对所有虚拟主机都有效。 不幸的是,仍然存在这样的虚拟主机,其不能按预期工作,例如由于redirect,authentication要求等。 有没有办法告诉Apache甚至在读取特定虚拟主机的configuration之前考虑这个别名?

Jenkins报告使用带有SNI的虚拟主机的Apache的反向代理设置不正确

我正在build立一个Jenkins服务器,在Apache后面的Tomcat下运行。 我使用的是使用SNI的SSL虚拟主机,因此我可以通过https://jenkins.example.com访问它,并在http://www.example.com上提供其他内容。 我已经启动并运行了,但是当我点击“pipe理Jenkins”时,它告诉我看来您的反向代理设置已经损坏 。 请注意,我正在使用自签名SSL证书,而jenkins.example.com不是默认的虚拟主机。 相关的apacheconfiguration如下所示: <VirtualHost *:80> ServerName jenkins.example.com Redirect / https://jenkins.example.com/ </VirtualHost> <VirtualHost *:443> ServerName jenkins.example.com SSLEngine on SSLCertificateFile /etc/ssl/certs/jenkins.example.com.crt SSLCertificateKeyFile /etc/ssl/private/jenkins.example.com.key <Location /> AuthType Digest AuthName "Jenkins" AuthUserFile "/etc/htpasswords" Require valid-user </Location> ProxyRequests Off ProxyPreserveHost On <Proxy http://localhost:8080*> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / […]

为同一台服务器上的多个SVN存储库设置虚拟主机

我在EC2实例上有2个svn回购。 它们位于/ebs/svn/repo1 & /ebs/svn/repo2 。 我创build了一个域别名svn.mydomain.com ,指向上面的父目录( /ebs/svn )。 我想要使​​用以下URL格式访问每个上述回购: svn.mydomain.com/repo1 svn.mydomain.com/repo2 当然,我有repo1与下面的vhostsconfiguration工作。 <VirtualHost *:80> ServerName svn.mydomain.com ServerAlias svn.mydomain.com ErrorLog /var/www/html/log/svn.mydomain.com-log <Location "/" > DAV svn SVNPath /ebs/svn/repo1 AuthType Basic AuthName "SVN – Private – Repos" AuthUserFile /ebs/svn/login/svn-auth-conf Require valid-user </Location> </VirtualHost> 问题是,我只能通过上面的vhostsconfiguration访问repo1 。 我想用以下格式访问这两个回购: svn.mydomain.com/repo1 svn.mydomain.com/repo2 我需要改变什么来访问我的svn回购的目录?

Apache 2的UserDir只有一个VirtualHost

是否有可能只为一个VirtualHost启用UserDir指令 ,而不是为所有用户启用,然后为每个不需要的VirtualHost禁用它(使用“UserDir disable”)? 我已经尝试把它放在一个<VirtualHost>并注释掉全局configuration(/etc/apache2/conf.d/userdir.conf)中的所有内容。 没有运气,但。 <IfModule mod_userdir.c> UserDir public.www UserDir disabled root <Directory /home/*/public.www> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule>

在多个文件中分割相同的虚拟主机configuration

我的服务器上有多个django应用程序,它们在自己的虚拟主机中运行,绑定到不同的端口。 (我这样做是为了隔离每个WSGIProcessGroup)。 现在我想代表每个应用程序到80端口为简单的事情。 对于一个应用程序,我做这样的事情: Listen 8101 <VirtualHost 127.0.0.1:8101> WSGIProcessGroup app1 WSGIDaemonProcess app1 display-name=%{GROUP} WSGIScriptAlias /app1 "/var/django_apps/app1/app1.wsgi" </VirtualHost> <VirtualHost *:80> ProxyPass /app1 http://localhost:8101/app1 ProxyPassReverse /app1 http://localhost:8101/app1 </VirtualHost> 现在,为了简化启用或禁用某些应用程序,当我有另一个应用程序运行时,我有另一个.conf文件包含这个: Listen 8102 <VirtualHost 127.0.0.1:8102> WSGIProcessGroup app2 WSGIDaemonProcess app2 display-name=%{GROUP} WSGIScriptAlias /app2 "/var/django_apps/app2/app2.wsgi" </VirtualHost> <VirtualHost *:80> ProxyPass /app2 http://localhost:8102/app2 ProxyPassReverse /app2 http://localhost:8102/app2 </VirtualHost> 但是这个第二个<VirtualHost *:80>没有被使用,考虑到apache的configuration语法,这似乎是正常的。 不过 ,我希望这一点的configuration能够在应用程序声明旁边生存,所以我可以在一个文件中拥有属于自己的东西。 我能为此做些什么? 我正在考虑使用include指令,但是我对apacheconfiguration知之甚less,而且我不认为我可以自己find一个解决scheme:) […]