我在同一网络(LAN)上有3台计算机。我想将一台计算机配置为Nginx Web服务器,另一台计算机配置为Varnish Cache服务器和一台客户端。我成功安装了一个(比方说A)Nginx(192.168.0.15)和B Varnish(192.168.0.20)。我将A配置为网络服务器,我可以从其他计算机浏览index.html。但我无法将其与B. 我搞砸了“nginx.conf”和“/sites-available/server.com”以及Varnish的“default.vcl”
你能给我一些适合我环境的基本配置吗?
如果你想看看 我的nginx.conf:
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
upstream dynamic_node {
server 1.1.1.1:80; # 1.1.1.1 is the IP of the Dynamic Node
}
server {
listen 81;
server_name myserver.myhome.com;
location / {
#root /var/www/server.com/public_html;
#index index.html index.htm;
# pass the request on to Varnish
proxy_pass http://192.168.0.20;
# Pass a bunch of headers to the downstream server.
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
}
/sites-available/server.com:
服务器{
listen 80;
server_name myserver.myhome.com;
access_log /var/www/server.com/access.log;
error_log /var/www/server.com/error.log;
}
和default.vcl一样:
backend web1 {
.host = "192.168.0.15";
.port = "8080";
}
sub vcl_recv {
if (req.http.host == "192.168.0.15") {
#set req.http.host = "myserver.myhome.com";
set req.backend = web1;
}
}
最后/ etc / default / varnish:
DAEMON_OPTS="-a :6081 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
提前致谢:)
答案 0 :(得分:3)
现在,您的varnish实例正在侦听端口6081.这需要在proxy_pass中为nginx指定,例如。
proxy_pass http://192.168.0.20:6081
我假设您提到的IP地址是正确的,并且计算机之间的网络连接不受限制。
<强>更新强>
请记住,您可以在清漆前使用nginx,反之亦然。 nginx和varnish都可以作为后端服务的代理 您当前的实现是使用nginx作为代理。这意味着您可以依赖proxy_pass或在nginx中使用上游模块(如果您希望在前面只有一个nginx的多个varnish实例后面加载平衡)。基本上,无论代理是什么,代理中指定的后端的IP地址和端口号(在您的情况下为nginx)必须与后端服务的IP地址和端口号匹配(在您的情况下为varnish)。对于您使用的任何应用程序服务器/服务(tomcat / netty / django / ror等),清漆中的后端需要匹配IP地址和端口号。