首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linode NodeBalancer Vs Nginx

Linode NodeBalancer Vs Nginx
EN

Stack Overflow用户
提问于 2016-02-01 08:10:58
回答 1查看 1.9K关注 0票数 1

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

我有一个下面的场景--

代码语言:javascript
复制
User-----via http---->NodeBalncer(http:80) ---->Nginx--->Redirect to HTTPS---->NodeBalancer(https:443)------> Tomcat on HTTP:8080

以下是示例流程

代码语言:javascript
复制
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.

现在,如果我需要为所有静态内容提供服务,比如(images/|img/|javascript/|js/|css/|stylesheets/),那么在通过NodeBalance将所有的HTTPS请求转发到为Tomcat提供服务的Tomcat之前,我需要通过Nginx转发它们来为静态内容提供服务。

我可以通过将NodeBalncer指向Nginx来做到这一点,但是对于Tomcat集群呢?因为NodeBalancer总是会将所有的HTTPS请求转发给Nginx,而我必须使用Nginx来维护会话粘性,这非常类似于通过Nginx实现的LoadBalancing。我看到所有的事情都可以通过Nginx服务器本身来完成。我可以直接使用Nginx,而不是终止所有用户对NodeBalancer的请求。

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

寻找一些专家对此的建议/评论,如果我的方法是错误的,也可以建议我。

EN

回答 1

Stack Overflow用户

发布于 2016-04-03 11:25:15

提供静态内容和重定向到https是两个不同的问题。您的一般方法听起来很好。就我个人而言,我会使用Nginx做任何事情,并丢失NodeBalancer,但这只是一个个人网站。如果这是为了业务,那么你需要考虑监控等,而NodeBalancer可能会提供一些你想要保留的特性。

将所有来自NodeBalancer的流量发送到Nginx,并使用Nginx作为负载均衡器和终止所有SSL流量。下面是一个终止SSL并提供图像服务的简单示例。在本例中,我们将所有流量路由到端口80上的tomcat上游服务器,该服务器使用IP散列进行负载平衡,因此您将获得粘性会话。您将在此处添加一个负载均衡器。

代码语言:javascript
复制
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负载平衡可能是最容易设置的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35121165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档