Questions tagged «virtualhost»

与虚拟主机有关的问题;也就是说,为同一台计算机上多个逻辑上分开的实体提供内容。通常与Web服务器中基于名称的虚拟主机有关,但也可以涵盖其他协议,例如SMTP或IMAP。

2
_default_ VirtualHost在端口80上重叠
我已将2个虚拟主机添加到我的apache2 conf文件中,如下所示: <VirtualHost *:80> DocumentRoot /var/www/html/site1 ServerName www.site1.com ServerAlias site1.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/html/site2 ServerName www.site2.com ServerAlias site2.com </VirtualHost> 然后我重新启动apache后得到错误: [警告] 默认 VirtualHost在端口80上重叠,第一个优先 搜索谷歌,他们说要取消注释下面的行,所以我做到了: NameVirtualHost *:80 重新启动,现在我没有收到错误,但是两个站点都转到第一个站点。 运行Centos5。我该如何解决这个问题?

1
位置指令不起作用
对于我的NGINX服务器,我设置了一个虚拟服务器,用于分发静态内容。目前,我正在尝试对其进行设置,以使图像具有到期日期。但是,当我为此创建一个位置指令时,一切都将导致404。 我的配置现在看起来像这样: /srv/www/static.conf server { listen 80; server_name static.*.*; location / { root /srv/www/static; deny all; } location /images { expires 1y; log_not_found off; root /srv/www/static/images; } } 注意,此文件包含在http指令内的/etc/nginx/nginx.conf中 我试图访问图像,在,让我们说...... static.example.com/images/screenshots/something.png。当然,该图像也存在于/srv/www/static/images/screenshots/something.png。但是,要说的地址不起作用,只会告诉我404 Not Found。 但是,如果我删除location /images并更改location /为以下内容... location / { root /srv/www/static; } 有用!我在这里做错了什么?

3
如何设置Apache VirtualHost与ipv6一起使用?
我的服务器具有1个ipv4地址和一些ipv6地址。一个域重定向到ipv4 A记录,我像这样设置apache ports.conf: Listen ip.v4.address:80 NameVirtualHost ip.v4.address:80 和virtualhost文件: <VirtualHost ip.v4.address:80> DocumentRoot /var/www/first/ ServerName first.domain ServerAlias www.first.domain ErrorLog ... CustomLog ... </VirtualHost> 而且一切正常。 现在,我想使用第二个IP为第二个域创建新的virtualhost。我将第二个域重定向到ipv6 AAAA记录,添加到ports.conf: Listen [ip.v6.address]:80 NameVirtualHost [ip.v6.address]:80 创建新的虚拟主机文件: <VirtualHost [ip.v6.address]:80> DocumentRoot /var/www/second/ ServerName second.domain ServerAlias www.second.domain ErrorLog ... CustomLog ... </VirtualHost> 并重新启动Apache。服务器启动时没有错误,但不起作用。当我在浏览器中输入第二个域时,找不到服务器。当我进入[ip.v6.address]网站时出现。 有什么帮助吗?

4
网络服务器随机提供不同的虚拟主机
我们已经在Ubuntu Trusty上运行了nginx。它通过一个IP地址上的https服务多个网站。 随机地,尽管它似乎与工作量有些关系,但有时单个请求会出现在错误的虚拟主机上。这导致要求lustrum.thalia.nu由服务,thalia.nu反之亦然。然后,当用户突然进入另一个网站时,这将产生令人讨厌的错误页面。按时F5,用户将再次回到原始目标。 似乎与浏览器或操作系统无关。已经确认它会在Firefox(Linux,Windows,Mac),Edge(Windows)和Chrome(Linux,Windows,Android)和Safari(iOS)上发生。 当系统处于负载状态时,此问题似乎更经常发生,这表明存在某种竞争状况。 芦荟 server { server_name lustrum.thalia.nu; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/certs/lustrum.thalia.nu.crt; ssl_certificate_key /etc/nginx/certs/lustrum.thalia.nu.key; add_header Strict-Transport-Security "max-age=63072000; preload"; root /var/www/thalia-lustrum/public_html; location / { index index.php; try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; # Pass all .php …

8
多站点托管-错过了使站点彼此安全的重要漏洞吗?
编辑#2,2015年7月23日:寻找一个新的答案,以识别在以下设置中缺少的重要安全项目,或者可以给出理由相信所有内容均已涵盖。 编辑#3,2015年7月29日:我特别在寻找可能的配置错误,例如无意中允许某些可被利用来规避安全限制或更糟的东西,但仍未解决的问题。 这是多站点/共享主机设置,我们希望使用共享的Apache实例(即在一个用户帐户下运行),但每个网站的用户都使用PHP / CGI运行,以确保没有站点可以访问另一个站点的文件,我们希望确保没有遗漏任何内容(例如,如果我们不了解符号链接攻击防护)。 这是我到目前为止的内容: 确保PHP脚本以网站的Linux用户帐户和组身份运行,并且被监禁(例如使用CageFS)或至少使用Linux文件系统权限进行了适当限制。 使用suexec以确保CGI脚本不能以Apache用户身份运行。 如果需要服务器端包含支持(例如shtml文件中的支持),请使用它Options IncludesNOEXEC来防止CGI在您不希望的时候运行(尽管使用suexec并不会引起太大的关注)。 拥有symlink攻击保护功能,这样黑客就不会欺骗Apache以纯文本形式提供另一个网站的文件,也不会泄露DB密码之类的可利用信息。 配置AllowOverride/ AllowOverrideList以仅允许黑客无法利用的任何指令。如果上述各项处理正确,我认为这不必担心。 如果MPM ITK没那么慢并且没有以root身份运行,我会选择它,但是我们特别想使用共享的Apache,但要确保它安全地完成。 我找到了http://httpd.apache.org/docs/2.4/misc/security_tips.html,但是它在该主题上并不全面。 如果有帮助,我们计划将CloudLinux与CageFS和mod_lsapi结合使用。 还有什么要确保做或知道的吗? 编辑2015年7月20日:人们已经提交了一些很好的替代解决方案,这些解决方案通常都很有价值,但是请注意,此问题仅针对共享Apache设置的安全性。特别是上面没有提到的东西可以使一个站点访问另一个站点的文件或以某种方式危害其他站点吗? 谢谢!

3
Apache-仅在特定域上监听,而不是IP
如何配置apache,使其拒绝直接连接到IP地址(http://xxx.xxx.xxx.xxx)而不是虚拟主机名http://example.com的连接? 我的VirtualHost配置: ServerName example.com <VirtualHost *:80> ServerName example.com DocumentRoot /var/www/ <Directory /var/www/> AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>

1
在Tomcat前面使用Apache进行SSL设置
我试图用SSl设置Apache并将SSL请求代理到我的tomcat实例。我认为我已使SSL正常工作,但仍然显示错误: Bad Gateway The proxy server received an invalid response from an upstream server. * SSL虚拟主机* LoadModule ssl_module modules/mod_ssl.so Listen 443 <VirtualHost _default_:443> SSLEngine On SSLProxyEngine On DocumentRoot "/var/apache-tomcat-7.0.34/webapps/Learn2Gether/" SSLCertificateFile /etc/pki/tls/learn2gether/cert-6090205098829887.pem SSLCertificateKeyFile /etc/pki/tls/learn2gether/private_key_unlocked.pem SSLCertificateChainFile /etc/pki/tls/learn2gether/rubca-chain.pem BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL ServerName www.learn2gether.rubel.rub.de ServerAlias learn2gether.rubel.rub.de #RewriteRule ^\/$ /Learn2Gether/index.html …

2
只允许在指定的虚拟主机上访问PhpMyadmin
我正在一个多虚拟主机环境上工作。我已经为Mysql Remote Control安装了PhpMyadmin。 环境配置如下: one.domain.com two.domain.com onlyphpmyadmin.domain.com 现在,如果我访问三个域之一 http://one.domain.com/phpmyadmin/ http://two.domein.com/phpmyadmin/ http://onlyphpmyadmin.domain.com/phpmyadmin/ 结果相同,则允许访问Phpmyadmin。 目标是在下面获得这种情况 http://one.domain.com/phpmyadmin/ --> access denied http://two.domein.com/phpmyadmin/ --> access denied http://onlyphpmyadmin.domain.com/phpmyadmin/ -->access allowed 没有类似的黑客 <?php if($_SERVER['HTTP_HOST'] != 'onlyphpmyadmin.domain.com') die('access denied'); ... ?> 在某些Phpmyadmin文件上。 这是我的Phpmyadmin配置文件 Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php <IfModule mod_php5.c> AddType application/x-httpd-php .php php_flag …

1
木偶:管理(大量)Apache VirtualHost
我正在学习一般的配置管理方式,尤其是使用puppet来实现它。我已经进行了一些一般性研究(也在SF上),现在我正在考虑Apache VirtualHosts。 我们在两个系统上托管了许多LAMP网站(目前在数百个范围内):一个Apache2 / mod_php一个和一个MySQL系统 -基本上与SF上的另一个问题相反,他在该问题上管理着很多服务器,每个服务器只有很少的虚拟主机(如果实际上不是一个,我不知道)。我还没有在puppet中整理一个有效的配置,但这应该不是问题,那里有很多 示例和食谱。 除了显而易见的apache配置文件(我想这里没有问题)之外,每个虚拟主机还需要创建一些目录并检查权限(例如,每个虚拟主机的根目录都包含documentroot,专用的tmp目录,专用的网页服务器上的php会话文件目录(可能是SSL证书等),以及MySQL服务器上的用户+一个或多个数据库。 添加一个新的虚拟主机将要求puppet创建虚拟主机,删除一个虚拟主机则需要puppet运行一些脚本来备份用户数据,然后从两台服务器中删除实时数据,而且每一个运行的puppet代理都将检查是否存在目录,数据库,权限等。 当每次运行木偶时都要运行数百个虚拟主机时,特别是在文件系统中(在Web服务器上)运行虚拟主机时,尤其是将来将来会加载更多系统时,我是否会遇到麻烦?(假设我们将1000-2000个网站范围定位为每个服务器的合理上限)。 有没有在网上进行此操作的经验?我用谷歌搜索,但一无所获,也因为搜索“木偶”和“ apache”时信噪比低。

2
电源故障后如何检查CentOS 6服务器VM主机?
今天下午,我们办公室的某人决定将插头从服务器中拔出,因为它正在外面狂奔。他们没有关闭它,只是在运行时拔出了插头。 该服务器在软件RAID 10配置中具有4个SATA驱动器,并且LVM运行在RAID之上。该服务器运行的是CentOS 6.2最低版本,并且是使用KVM的虚拟机主机。拔出电源时,计算机上运行着许多客户机。每个来宾都有一个或多个LVM分区,可以直接用作硬盘驱动器。来宾分区是EXT3,EXT4和NTFS。主机操作系统位于EXT4分区上。 后来,当电源恢复时,那个人将其插回电源,然后启动。由于他们没有先连接显示器就将其插入,因此无法查看屏幕上出现的情况。我现在尝试连接显示器,但是除非在启动时连接显示器,否则它将无法工作。我一直按原样保留它,直到我得到一些建议为止,因为我不想搞砸(进一步)。 我可以通过SSH进入主机。我还没有重新启动它,以防日志中某处可能有用。 我需要做的是检查所有磁盘和分区的数据完整性,如果可能的话。我认为RAI​​D 10使用某种基于内存的缓存,并且我担心驱动器不一致,或者如果有提示要写入尚未写入的驱动器,则文件会损坏。 [root@othello ~]# cat /proc/mdstat Personalities : [raid10] [raid1] md2 : active raid1 sdc1[2] sda1[0] sdd1[3] sdb1[1] 102388 blocks super 1.0 [4/4] [UUUU] md0 : active raid10 sda3[0] sdc3[2] sdd3[3] sdb3[1] 1952289792 blocks super 1.1 512K chunks 2 near-copies [4/4] [UUUU] bitmap: 0/15 …

4
需要帮助解决Https网络服务器错误-SSL握手失败
我遵循了该指南:http : //hints.macworld.com/article.php?story=20041129143420344 这是我的虚拟主机定义 <VirtualHost *:443> SSLEngine on SSLProxyEngine On RequestHeader set Front-End-Https "On" CacheDisable * SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL DocumentRoot "/Users/me/projects/myproject/public" ServerName ssl.mydomain.com ServerAlias *.ssl.mydomain.com SSLCertificateKeyFile "/private/etc/apache2/certs/webserver.nopass.key" SSLCertificateFile "/private/etc/apache2/certs/newcert.pem" SSLCACertificateFile "/private/etc/apache2/certs/demoCA/cacert.pem" SSLCARevocationPath "/private/etc/apache2/certs/demoCA/crl" ErrorLog "/Users/me/Desktop/ssl.log" ProxyPass / https://localhost:3002/ ProxyPassReverse / https://localhost:3002 ProxyPreserveHost on </VirtualHost> 当我尝试通过Web浏览器连接到sevre时,出现此错误: [Thu Feb 02 16:50:40 2012] [error] …

1
如何在Nginx中设置服务器特定的ENV值?
我正在启动一个使用环境变量来设置数据库连接和其他几件事的项目。(他们不想使用配置文件,因为人们不小心会覆盖它们)。 无论如何,我正在使用nginx,虽然它支持env-似乎对其支持还不够好。您不能基于每个服务器块设置env值。换句话说,这是行不通的: server { listen 80; server_name domain; env FOO = "bar"; } 您必须这样做: env FOO = "bar"; http { server { listen 80; server_name domain; } } 这意味着我不能具有特定于虚拟主机的值。因此,我必须为每个站点创建一个完整的vhost配置,并仅激活我现在想要的那个,以便正确设置该值。 有什么办法可以解决此问题?

5
基于* source * IP的Apache虚拟主机
是否可以基于源 IP 为不同的虚拟主机配置Apache ?(即,基于源 IP ,相同的接口,相同的主机名,但两个不同的虚拟主机,它们具有不同的内容。) 这样做的动机是为了使我的IP地址可以正常访问该站点,但其他所有人都可以获取该保留页面。传统的解决方案似乎是使用mod_rewrite将访问者定向到同一docroot中的单独页面,但是我想对保存页面使用完全不同的docroot。

5
Apache不遵守特定站点的ServerName指令
我已经使用Apache将一些站点配置为VirtualHosts,这些站点已经运行了一段时间。最近,我将服务器的主机名更改为所服务的域名之一,并将其​​添加到指向服务器的外部IP地址的/ etc / hosts中。 自从这样做以来,从笔记本电脑访问域会将我带到Apache的默认“有效!”。页。如果我从/ etc / apache2 / sites-enabled /中删除000-default,它将显示正确的站点。尝试使用“ www”访问该网站。前缀将我带到正确的站点,无论000-default是否在启用站点的站点中。 基于所有这些,我猜测默认配置将服务于默认页面,因为我是如何配置主机名或/ etc / hosts(或两者)的,但是我不知道如何在禁用该配置的同时保持这些设置不变。任何建议欢迎! 编辑-我当前的VirtualHost配置如下所示: <VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com ServerAdmin me@domain.com DocumentRoot /srv/www/domain ErrorLog /srv/www/domain/logs/error.log CustomLog /srv/www/domain/logs/access.log combined </VirtualHost> 总结一下:我已经设置了几个VirtualHost,这是唯一不能正常工作的VirtualHost。我可以正常访问http://www.domain.com,但http://domain.com可以带我使用Apache的默认“有效!”。页。如果禁用000默认配置,则会显示正确的页面。这仅在我将服务器的主机名设置为domain.com并在/ etc / hosts中添加一行,将domain.com指向服务器的外部IP地址后才开始发生。如果可能的话,我想离开那些地方。 编辑:我跑了apache2ctl -S因为/usr/sbin/apache2 -S给了我“ apache2:错误的用户名$ {APACHE_RUN_USER}”。这是输出: VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:80 …

1
Apache2中的*:80和_default_:80有什么区别?
我试图了解以下两个术语之间的区别: *:80 _default_:80 在Apache配置文件中。我对这里的文档不清楚,并且我在这里只能找到的唯一一个邮件列表对话也没有引起任何争议(对我来说是可以理解的)。 我有一堆这样声明的基于名称的虚拟主机: <VirtualHost *:80> ServerName example.com ... 并且我希望有一个条目在所有这些都不匹配时触发,即当请求传入时没有虚拟主机名,或者具有未声明的虚拟主机名。我应该使用*:80还是_default_:80?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.