Linode节点平衡器Vs Nginx
我创建了一个NodeBalancer,通过HTTP在Tomcat服务器上路由我的请求。我看到NodeBalancer做得不错,但现在我必须安装Nginx服务器到服务器的静态联系人,以及反向代理,以将我的http流量重定向到HTTPS 我有一个下面的场景-- 下面是样本流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
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负载平衡可能是最简单的设置