Linode节点平衡器Vs Nginx

Linode节点平衡器Vs Nginx,nginx,load-balancing,linode,Nginx,Load Balancing,Linode,我创建了一个NodeBalancer,通过HTTP在Tomcat服务器上路由我的请求。我看到NodeBalancer做得不错,但现在我必须安装Nginx服务器到服务器的静态联系人,以及反向代理,以将我的http流量重定向到HTTPS 我有一个下面的场景-- 下面是样本流 1) User send a request using HTTP:80 2) NodeBalancer received request on HTTP:80 and forward to Nginx 3) Nginx red

我创建了一个NodeBalancer,通过HTTP在Tomcat服务器上路由我的请求。我看到NodeBalancer做得不错,但现在我必须安装Nginx服务器到服务器的静态联系人,以及反向代理,以将我的http流量重定向到HTTPS

我有一个下面的场景--

下面是样本流

1) User send a request using HTTP:80
2) NodeBalancer received request on HTTP:80 and forward to Nginx
3) Nginx redirect request to HTTPS 
4) Now NodeBalancer received request on HTTPS:443 and forward to Serving Tomcat on HTTP:8080 after terminating SSL on NodeBalancer.
现在,如果我需要提供所有静态内容,如(图像/| img/| javascript/| js/| css/|样式表/),那么在通过NodeBalance将所有HTTPS请求转发给Tomcat之前,我需要通过Nginx转发它们以提供静态内容

我可以通过将NodeBalncer指向Nginx来实现这一点,但是Tomcat集群又如何呢?因为NodeBalancer总是将所有HTTPS请求转发给Nginx,我必须使用Nginx来保持会话粘性,这与通过Nginx进行负载平衡非常相似。我看到一切都可以通过Nginx服务器本身来完成。我可以直接使用Nginx,而不是终止所有用户对NodeBalancer的请求

我确实通过安装Nginx和将HTTP重定向到HTTPS来执行一些场景,并独立地提供静态内容,但我坚持使用提供的NodeBalancer来达到我的目的。我计划放弃Linode NodeBalncer,使用Nginx作为负载均衡器以及服务静态内容


如果我的方法错误,请查看一些专家对此的建议/评论,或向我提出建议

提供静态内容和重定向到https是两个不同的问题。你的一般方法听起来不错。我个人会用Nginx做所有的事情,但这是个人网站。如果这是为了业务,那么你需要考虑监控等,NoDalBalac可能提供一些你想要保留的特性。 将所有流量从NodeBalancer发送到Nginx,并将Nginx用作负载平衡器和终止所有SSL流量。下面是一个简单的示例,用于终止SSL并提供图像服务。在本例中,我们将所有流量路由到端口80上的tomcat上游服务器,该服务器使用IP哈希进行负载平衡,以便获得粘性会话。您将在此处添加负载平衡器

upstream tomcat {
    ip_hash;
    server 192.168.1.1:80;
    server 192.168.1.2:80;
    server 192.168.1.3:80;
}     
server { 
    listen       443;
    server_name  www.example.org;
    ssl    on; 
    ssl_certificate     /etc/letsencrypt/live/example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
    location / { 
        proxy_cache example_cache;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header Host              www.example.org:80;
        proxy_pass_request_headers on; 
        proxy_pass http://tomcat;
    }     
    location /images/ { 
        root /var/www/images/;
        autoindex off;
    } 
}

要实现粘性会话,您有几个选项需要仔细阅读。IP负载平衡可能是最简单的设置。

为静态内容提供服务和重定向到https是两个不同的问题。你的一般方法听起来不错。我个人会用Nginx做所有的事情,但这是个人网站。如果这是为了业务,那么你需要考虑监控等,NoDalBalac可能提供一些你想要保留的特性。 将所有流量从NodeBalancer发送到Nginx,并将Nginx用作负载平衡器和终止所有SSL流量。下面是一个简单的示例,用于终止SSL并提供图像服务。在本例中,我们将所有流量路由到端口80上的tomcat上游服务器,该服务器使用IP哈希进行负载平衡,以便获得粘性会话。您将在此处添加负载平衡器

upstream tomcat {
    ip_hash;
    server 192.168.1.1:80;
    server 192.168.1.2:80;
    server 192.168.1.3:80;
}     
server { 
    listen       443;
    server_name  www.example.org;
    ssl    on; 
    ssl_certificate     /etc/letsencrypt/live/example.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
    location / { 
        proxy_cache example_cache;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header Host              www.example.org:80;
        proxy_pass_request_headers on; 
        proxy_pass http://tomcat;
    }     
    location /images/ { 
        root /var/www/images/;
        autoindex off;
    } 
}
要实现粘性会话,您有几个选项需要仔细阅读。IP负载平衡可能是最简单的设置