是否可以根据源 IP为不同的虚拟主机configurationApache? (即基于源 IP的相同接口,相同主机名,但具有不同内容的两个不同虚拟主机)。 这样做的动机是,我的IP地址可以访问正确的网站,但其他人都拿到页面。 传统的解决scheme似乎是使用mod_rewrite将访问者引导到同一个文档根目录中的一个单独的页面,但是我想使用完全不同的文档根目录来代替。
我试图设置我的开发nginx / PHP服务器与一个基本的主/全部捕获vhostconfiguration,以便我可以根据需要创build无限___.framework.loc域 。 server { listen 80; index index.html index.htm index.php; # Test 1 server_name ~^(.+)\.frameworks\.loc$; set $file_path $1; root /var/www/frameworks/$file_path/public; include /etc/nginx/php.conf; } 然而,nginx响应此设置的404错误。 我知道nginx和PHP正在工作,并有权限,因为我使用的localhostconfiguration工作正常。 server { listen 80 default; server_name localhost; root /var/www/localhost; index index.html index.htm index.php; include /etc/nginx/php.conf; } 我应该检查什么来发现问题? 这里是他们都加载的php.conf的副本。 location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ […]
我们的网站mysite.com将在10.20.30.40虚拟主机(基于名称)的服务器上进行托pipe。 但是,DNSlogging目前指向66.77.88.99 。 我想在testing的时候保持这些DNSlogging指向66.77.88.99 ; 有没有办法让我访问10.20.30.40 ? 由于目标服务器使用虚拟主机,我不能简单地inputIP地址在目标站点上testing。 另外,我无法控制目标服务器,因此无法设置子域进行testing。
我正在开发一个多虚拟主机环境。 我已经安装了Mysql Remote Control的PhpMyadmin。 环境configuration如下: one.domain.com two.domain.com onlyphpmyadmin.domain.com 现在,如果我accesso三个领域之一 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文件。 在这里我的Phpmyadminconfiguration文件 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 magic_quotes_gpc Off php_flag track_vars […]
我有Apache 2.4在Mac OS X上运行apachectl configtest给我:语法OK。 我有两个虚拟主机,一个叫做localhost,一个叫做test.dev。 <VirtualHost *:80> DocumentRoot "/Users/psychomachine/Development/_localhost" ServerName localhost ServerAlias www.localhost <Directory /> Require all granted </Directory> </VirtualHost> <VirtualHost *:80> DocumentRoot "/Users/psychomachine/Development/test" ServerName test.dev ServerAlias www.test.dev <Directory /> Require all granted </Directory> </VirtualHost> localhost只是工作: ↪ curl -I -L localhost 15:51:08 HTTP/1.1 200 OK Date: Tue, 08 Dec 2015 14:51:17 GMT Server: Apache/2.4.16 […]
我试图理解以下两个术语之间的区别: *:80 _default_:80 在Apacheconfiguration文件中。 这里的文档对我来说是不清楚的,在这里我可以find的唯一的邮件列表对话也没有对这件事情(对我来说是可理解的)进行解释。 我有一堆基于名称的虚拟主机声明像这样: <VirtualHost *:80> ServerName example.com … 我希望有一个条目可以在没有匹配的时候触发,也就是说,当一个请求没有虚拟主机名或者没有声明的虚拟主机名的时候。 我应该使用*:80还是_default_:80 ?
即时通讯设法设置Apache与SSl和代理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 [PT] ##RewriteRule ^/(.*)$ /$1 […]
我想build立一个环境,可以在不重新加载configuration的情况下dynamic创buildApache虚拟主机。 我可以用mod_vhost_alias来做到这一点,我设置了我的默认虚拟主机 <VirtualHost *> UseCanonicalName Off VirtualDocumentRoot /var/www/sandboxes/domains/%0 ServerName catchall.host </VirtualHost> 这工作得很好,但如果请求是一个主机名目前没有build立,我得到一个404未find错误。 我真正想做的只是在文档根目录存在的情况下才使用这个VirtualHost脚本,否则就尝试与另一个vhost相匹配(换句话说,使VirtualDocumentRoot的工作方式与使用ServerAlias) 我试图让这第二个虚拟主机,第一个虚拟主机只处理所有的请求,但是这不起作用 – 虚拟文档根目录configuration域的请求下降到默认虚拟主机。 那么,我怎样才能dynamic地configuration虚拟主机,但是如果还没有configuration任何虚拟主机,还可以使用另一个虚拟主机呢?
在apache2中,任何具有未知主机的http请求都将被定向到第一个加载的VirtualHost。 有没有办法禁用此function? 换句话说,我想有一个Web服务器,用户只能得到明确命名的VirtualHost定义。 在ServerName或ServerAlias行中没有明确提到的任何其他主机名应该被静默地忽略。 这可能吗? Listen 80 NameVirtualHost * <VirtualHost _default_:*> # Anything matching this host should be silently ignored. </VirtualHost> <VirtualHost *> DocumentRoot /www/example1 ServerName www.example.com </VirtualHost> <VirtualHost *> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost> 更新:正如下面和其他地方所build议的,静静地忽略请求可能不是一个好主意,也许会打破RFC的RFC。 但是,由于虚拟主机被devise为模拟具有多个独立的物理HTTP服务器,所以对我来说,无声的忽略方法似乎并不合理。 这将与基于IP的虚拟主机和防火墙closures一些IP(可能不是所有的客户端)相同。
我已经有几个站点configuration为使用Apache的VirtualHosts,一直工作得很好。 我最近将服务器的主机名更改为正在服务的域名之一,并将其添加到指向服务器外部IP地址的/ etc / hosts中。 由于我这样做,从我的笔记本电脑访问的域名需要我的Apache的默认“它的作品!” 页。 如果我从/ etc / apache2 / sites-enabled /删除了000-default,它将显示正确的站点。 尝试使用“www”访问网站 前缀带我到正确的网站,无论是否默认是在网站启用。 基于所有这一切,我猜默认configuration正在提供默认页面,因为我已经configuration主机名或/ etc / hosts(或两者),但我不知道如何禁用,而同时留下这些设置。 任何build议欢迎! 编辑 – 我目前的VirtualHostconfiguration如下所示: <VirtualHost *:80> ServerName domain.com ServerAlias www.domain.com ServerAdmin [email protected] DocumentRoot /srv/www/domain ErrorLog /srv/www/domain/logs/error.log CustomLog /srv/www/domain/logs/access.log combined </VirtualHost> 总结:我有几个VirtualHosts设置,这是唯一一个不能正常工作。 我可以访问http://www.domain.com就好了,但http://domain.com把我带到Apache的默认“它的工作!” 页。 如果我禁用000默认configuration它显示正确的页面。 这只是在将服务器的主机名设置为domain.com并将一行到/ etc / hosts指向domain.com添加到服务器的外部IP地址之后才开始发生的。 如果可能,我想离开那些。 编辑:我运行apache2ctl -S因为/usr/sbin/apache2 -S给我“apache2:坏用户名$ {APACHE_RUN_USER}”。 这是输出: VirtualHost […]