我开始一个项目,使用环境variables来设置数据库连接和其他一些事情。 (他们不想使用configuration文件,因为人们粗心大意并覆盖它们)。 无论如何,我正在使用nginx,虽然它支持env – 它似乎并没有足够好的支持 。 您不能在每个服务器块的基础上设置env值。 换句话说,这是行不通的。 server { listen 80; server_name domain; env FOO = "bar"; } 你必须这样做: env FOO = "bar"; http { server { listen 80; server_name domain; } } 这意味着我不能具有特定于虚拟主机的值。 所以我必须为每个站点创build一个完整的虚拟主机configuration,并且只激活一个我想要的那一刻,以便正确设置该值。 有什么办法可以解决这个问题吗?
我不知道这是否可能在Apache上,我来之前已经做了大量的研究。 但: 我有一个VirtualHost运行在**:80 *,ServerName到somedomain.tld。 我想实现的是,如果客户端10.2.1.4访问somedomain.tld,客户端将从DocumentRoot / var / www / pages-1 /提供内容。 然后,如果10.3.0。*访问相同的somedomain.tld,客户端将从DocumentRoot / var / www / pages-2 /获取内容。 目前有什么办法可以做到这一点?
在Windows 2或其他Linux发行版(如Centos)上运行Apache 2时,可以通过在命令行键入httpd -S来显示虚拟主机列表。 你会得到一个很好的虚拟主机列表以及它们的定义。 Debian似乎不支持与等效的apache2 -S命令,吐出这个错误: apache2: bad user name ${APACHE_RUN_USER} 起初我以为有一个问题与Apache env变种,但显然一切正常。 但是,我仍然希望能够看到我所有的虚拟主机的列表。 任何想法,我可以轻松做到这一点?
我试图在运行centos7.1的单个服务器上托pipe我的网站。 我能够在端口80上的虚拟主机,但是当我将second-site端口更改为8080它指向first-site 。 但是,对于URL http://62.210.xx.xx:8080/其正常工作,指向second-site 。 我正在这样做: httpd.conf文件 Listen 80 Listen 8080 also tried Listen 0.0.0.0:80 Listen 0.0.0.0:8080 but same commented out for apache 2.4 #NameVirtualHost 62.210.xx.xx:80 #NameVirtualHost 62.210.xx.xx:8080 ServerAdmin root@localhost #first-site.com <VirtualHost 62.210.xx.xx:80> ServerName first-site.com ServerAlias www.first-site.com DocumentRoot /var/www/first-site </VirtualHost> #second-site.com <VirtualHost 62.210.xx.xx:8080> ServerName second-site.com ServerAlias www.second-site.com DocumentRoot /var/www/second-site </VirtualHost> netstat -tulpn | grep […]
我已经在端口443上设置了一个基于名称的虚拟主机设置,这样主机“apple.fruitdomain”上的请求代理到apple-app,主机“orange.fruitdomain”上的请求代理到orange-app。 这是工作,但我想添加一个ServerAlias为每个这样的主机上的请求'苹果'代理苹果应用程序和主机'橙'的请求代理橙色的应用程序。 如果我只是将一个ServerAlias指令添加到虚拟主机,它不起作用。 下面的ssl.conf: Listen 443 NameVirtualHost *:443 <VirtualHost *:443> ServerName apple.fruitdomain ServerAlias apple SSLProxyEngine on ProxyPass /apple-app https://localhost:8181/apple-app ProxyPassReverse /apple-app https://localhost:8181/apple-app … </VirtualHost> <VirtualHost *:443> ServerName orange.fruitdomain ServerAlias orange SSLProxyEngine on ProxyPass /orange-app https://localhost:8181/orange-app ProxyPassReverse /orange-app https://localhost:8181/orange-app … </VirtualHost> 有趣的是,如果我做了类似的设置,但端口80然后ServerAlias工程…
我有一个网站(domain.com),我想redirect我所有的二级域名(domain2.com,domain3.com)和这些域名的所有子域名(* .domain.com,* .domain2.com … )到主域www.domain.com(因为我希望后者是访问该网站的唯一URL)。 为此, 我创build了一个Apache虚拟主机来捕获所有这些可能性并redirect它们 (在configuration完DNS之后,这是不言而喻的)。 我把这个configuration放在Apache的文件夹“sites-enabled”的一个名为“999-catchall”的文件中。 注意:我使用这个名字来确保它是最后一个被检查的虚拟主机,因为我也有我的默认虚拟主机(000-默认为www.domain.com)和一个虚拟主机用于我的webmail(001-webmail for webmail.domain .COM)。 下面是这个“999-catchall”文件的内容: <VirtualHost *:80> # catch… ServerName domain.com ServerAlias domain2.com domain3.com *.domain.com *.domain2.com *.domain3.com # …and redirect RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L] </VirtualHost> 此configuration适用于domain.com,domain2.com,* .domain2.com,domain3.com和* .domain3.com, 但不适用于* .domain.com。 例如:如果我键入blabla.domain2.com,我被redirect到www.domain.com,但如果我inputblaba.domain.com,我不(我只是有一个“服务器找不到”的错误)。 我的方法是否正确? 你看到我的错误在哪里吗? 编辑:我的错误,我的DNS服务器没有正确configuration* .domain.com。 所以这个configuration工作,如果它可以帮助谁想要做同样的事情的人。
我想用Tomcat 5.5来做以下事情: * .mydomain.com应该去我的webapp,位于虚拟主机mydomain.com。 所以我有一个虚拟主机mydomain.com,我想所有* .mydomain.com也去那里。 现在,如果我这样做,它不会拿起虚拟主机,只是默认的(没有设置为mydomain.com)。 如何解决这个问题? 我基本上想在主机别名或虚拟主机名称本身允许通配符。 (通过这种方式DNS设置是正常的)
我已经将Linodeconfiguration为Apache 2.2.14的Ubuntu 10.04.2 Web服务器。 我总共有4个站点,全部在/etc/apache2/sites-available下定义为虚拟主机。 所有站点几乎都是相同的克隆进行configuration。 而所有的网站,但我最后的工作成功。 default: (www.)exampleadnetwork.com (www.)example.com reseller.example.com trouble: client1.example.com 当我访问client1.example.com网站时,我不断收到此页面: 有用! 这是此服务器的默认网页。 networking服务器软件正在运行,但尚未添加内容。 在我的ports.conf文件中,我将NameVirtualHost正确设置为端口80上的IP地址。 如果我访问“www.sub.example.com”别名的网站工作! 如果我在没有www的情况下访问它,我会看到上面贴出的“It Works”摘录。 即使apache2ctl -S显示我的虚拟主机文件parsing正确,并被添加到混合。 我的虚拟主机configuration文件如下: <VirtualHost 127.0.0.1:80> ServerAdmin [email protected] ServerName client1.example.com ServerAlias client1.example.com www.client1.example.com DocumentRoot /srv/www/client1.example.com/public_html/ ErrorLog /srv/www/client1.example.com/logs/error.log CustomLog /srv/www/client1.example.com/logs/access.log combined <directory /srv/www/client1.example.com/public_html/> Options -Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </directory> </VirtualHost> 其他网站是以下的变体: […]
我想为我在单个Jetty实例中托pipe的不同域颁发不同的SSL证书。 我不想让我的Jetty应用程序服务器与Apache。 我正在运行Jetty 6.1.22。 到目前为止,我只看到一个SSL证书的configuration,SSL的configuration发生在服务器内,这使得我相信Jetty被devise为支持单一的SSL证书。 请让我知道,如果我可以使用多个证书的Jetty。 我正在考虑迁移到JBoss应用服务器6.0,因为它离真正的应用服务器更近。 这是否可以在那里完成,这是一个支持的function? search一下后,我碰到这个: https : //stackoverflow.com/questions/208149/configure-multiple-keystores-in-jboss-depending-on-requested-hostname 是这样吗? 如果是这样,那么我认为Jetty或任何其他应用程序服务器将支持它。 我需要有2个不同的连接器 – 不同的端口或IP地址。 那么,我需要在这种情况下有Apache代理Jetty / JBoss。 沃尔特
我有一些问题设置和使用vhost.conf为我的域之一。 到目前为止,没有任何域需要任何额外的configuration,但现在我需要使用PEAR模块,所以我打算在域的PHP设置中包含/ usr / share / pear。 在/var/www/vhosts/domain.com/conf/vhost.conf中创build的vhost文件 <Directory /var/www/vhosts/domain.com/httpdocs> php_admin_value include_path ".:/usr/share/pear" </Directory> 然后我使用以下命令重启Plesk: /usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=domain.com 或者如plesk所说,Plesk 10中的命令已经过时,我尝试过使用 /usr/local/psa/admin/sbin/httpdmng –reconfigure-domain domain.com 为了好运,我也重新启动了Apache。 净结果 – 没有PEAR包括工作,除非我编辑/etc/php.ini中的include_path! 有关如何获得这个MOFO的任何提示? 我查看了文档,但是TBH我没有时间阅读一行代码的40页Plesk手册,这当然不是那么难! 感谢您的指点,H