我有一个13.04 Ubuntu服务器与两个关联的IP地址。 比方说,例如,IP是123.456.789.111和123.456.789.222 ,服务器有两个域,比如example1.com和example2.com 。
我目前有Apache的服务example2.com,我有example1.com由Varnish> Nginx服务 。 除了example1.com实际上是由Apache服务的,尽pipe所有的设置显示它应该由nginx服务。
在DNS example1.com指向123.456.789.111和example2.com指向123.456.789.222 。
在
/etc/apache2/ports.conf
我已经设置为:
NameVirtualHost 123.456.789.222:80 Listen 80
所以指向这个域的任何域都应该被Apache服务,这就是发生了什么事情。
在
/etc/default/varnish
我已经设置为:
DAEMON_OPTS="-a 123.456.789.111:80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
因此,指向该域的任何网站都应该被Varnish拾起。
然后在:
/etc/varnish/default.vcl
我已经设置为:
backend default { .host = "127.0.0.1"; .port = "8080"; }
从varnish到nginx的所有内容,
/etc/nginx/sites-available/example1.com root /var/www/example1.com/public/
我有:
server { listen 127.0.0.1:8080;
为了说明,我还将该域名与网站启用/ example1.com同步。
所以example1.com应该由Varnish加载,然后由Nginx提供服务,但实际上它是从以下内容加载内容的:
/var/www/
另外,如果我用example1.com做www.isvarnishworking.com,它说它不通过清漆加载。 (是的,我正在使用实际的域名而不是example1.com,我正在使用这个职位的目的)。
我也重新启动了Varnish Nginx和Apache服务,所有的服务都没有任何问题。
另外我禁用了nginx的默认网站:
sudo rm -v / etc / nginx / sites-enabled / default
还在:
在/ etc / apache2的/启用的站点 –
example1.com不存在(因为它不应该,因为我不希望它由Apache加载)。
我不知道还有什么要检查的。 有没有人有一个想法或命令来运行,可能会帮助我看看什么example1.com没有被加载的Apache和传递给Nginx?
**更新**
如果我停止nginx,apache2和varnish,首先打开varnish和nginx,那么example1.com会正确加载使用varnish和nginx。 但是,如果我运行:
sudo service varnish start
它说:
(98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
我不知道为什么,因为是的,Apache和varnish正在侦听端口80,但他们正在监听端口80在不同的IP地址。
看起来,在/etc/apache2/ports.conf有Listen 80而不是Listen 123.456.789.222:80 。 这样,端口将被绑定到特定的IP地址。