留意nginx的负载均衡
nginx中可以通过设定upstream 来使得单机器想多机器的转发
upstream mydomain {
server server1:80;
server server2:80;
server server3:80;
}
server{
listen 80;
server_name www.mydomain.com;
location / {
proxy_pass mydomain ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
通过访问我的域名,可以将请求代理到mydomain中,mydomain可以将请求分别转发到下面的三个服务器的端口中
这里很适合用于前后分离的项目
前端资源(js,css,html,jpg...)可以通过nginx配置到自己的特别路径中,后端请求就走mydomian
location ~* ^.+\.(js|css|less)$ { ##这里走前端资源
root /path/frontcode;
}
location / { ##这里走后端资源
proxy_pass mydomain ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
一般来说,应用的压力重点都在后端,所以能很好的解决后端的压力。
这了又可以演化一步,
假如要请求很多的图片资源,我们又可以将图片资源请求到图片服务器中,
location ~* ^.+\.(jpg|jpeg|gif|png|ico|txt|fla|swf|zip)$ {
root /path/imgpath;
}
至于请求图片资源,我们可以用一个独立的服务器来部署,也可以写一个简单的servlet来代理图片,可以重新配置一个mydomain4img,转发到其他的图片服务器中。
扯远了,继续upstream
upstream也可以进一步设置负载均衡,
least_conn;----最少链接策略,
ip_hash;-----相同的ip解析到相同的机器
weight------设置每个机器的权重
还有一个hash,不过网上资料显示hash插件可能需要memcache插件支持,本人没有测过
英语好的可以翻看nginx的官网,上面也有介绍以上几种用法,甚至更多。
当然,现在由于国内的各个运营商混乱以及强制插入js和广告,导致我们在自己应用中走ssl,nginx可以配置走ssl
server {
listen 443;
server_name mydomian.com;
ssl on;
ssl_certificate sslkey/crtname.crt; (证书公钥)
ssl_certificate_key sslkey/keyname.key; (证书私钥)
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;
ssl_prefer_server_ciphers on;
location / {
....#自己业务逻辑
}
}
nginx还解释了,由于一次ssl的握手消耗的cpu比较大,导致每次request请求都会带来cpu的消耗,所以就有两种策略,设置keepalive 以及设置ssl的session cache。
http {
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
server {
listen 443 ssl;
server_name www.example.com;
keepalive_timeout 70;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
....
ssl_protocols和ssl_ciphers可以为默认,也可以用ssl运营商给过来的设置
最后:多读书,就能多想出解决方案。
分享到:
相关推荐
基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + ...
nginx+tomcat配置实现负载均衡,亲测可用
本篇文章将深入探讨如何利用Nginx搭建负载均衡,并结合Redis实现session共享,以确保用户在集群中的不同服务器之间切换时,其session信息能够一致。 首先,我们需要理解Nginx的负载均衡策略。Nginx支持多种负载均衡...
本文将深入探讨如何使用Nginx搭建负载均衡集群,并介绍Nginx支持的多种负载均衡策略。 首先,我们来看一下实验环境:一台作为负载均衡器的服务器(youxi1,IP:192.168.5.101),两台作为后端主机的服务器(youxi2...
Nginx+Tomcat搭建负载均衡,实现网站请求的分发 Nginx+Tomcat搭建负载均衡是实现网站请求的分发的常见解决方案。以下是该解决方案的详细知识点说明: 一、负载均衡的概念 负载均衡是指将网络请求分配到多个服务器...
本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多个版本的Tomcat,即qdky-tomcat-6.0.44.6、qdky-tomcat-6.0.44.5、qdks-...
在阿里云服务器上搭建Nginx负载均衡,可以有效地分发请求到多台后端服务器,降低单台服务器的压力,提高服务的稳定性和可靠性。 首先,我们需要准备一台阿里云服务器,操作系统推荐使用CentOS 7.6。在进行负载均衡...
Nginx 负载均衡策略** - **轮询**:每个请求按顺序分配,down 掉的服务器会被自动剔除。 - **权重分配**:根据服务器性能分配不同比例的请求。 - **IP Hash**:基于客户端 IP 的哈希结果分配,确保同一客户端...
使用nginx搭建web负载均衡,方便使用,简单,快捷。。
Nginx 支持多种操作系统,包括 CentOS 7.2,本文将介绍如何在 CentOS 7.2 上搭建 Nginx 负载均衡配置。 在开始之前,确保系统网络正常、yum 可用,并关闭 iptables 和 selinux,因为这些因素可能对 Nginx 的安装和...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+tomcat搭建负载均衡"就是一种常见的解决方案。这个主题涉及到两个主要组件:Nginx和Tomcat,以及如何利用它们来实现负载均衡。 Nginx是一款高性能的...
### SUSE 11 下 Nginx 负载均衡安装流程详解 #### 一、前言 在现代网络环境中,随着网站访问量的增加,单一服务器往往难以满足高并发请求的需求,这时就...希望本篇指南能帮助您顺利完成Nginx负载均衡的搭建工作。
### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx官方网站下载适合您操作系统的最新版本。推荐下载稳定版以确保运行稳定。 - **解压文件**:将...
【Nginx+Tomcat9搭建负载均衡实例】 在现代Web服务架构中,为了提高系统的可用性和性能,通常会采用负载均衡技术。本实例将详细讲解如何使用Nginx作为反向代理和负载均衡器,结合Tomcat9作为Java应用服务器来搭建一...
3. **负载均衡器的高可用**: 可以使用另一台 Nginx 或其他负载均衡器作为前端,对后端的 Nginx 实例进行负载均衡,提高整体系统的稳定性。 **软负载与硬负载** 软负载指的是负载均衡器不改变原始请求的源 IP 和...
在测试Nginx的负载均衡时,通常会搭建多个模拟服务器(如`testserver`),通过修改Nginx配置文件,设置不同的负载均衡策略,然后使用`curl`或浏览器进行请求,观察和分析响应结果,以验证配置的有效性。 在附件中,...