- 浏览: 1275583 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里。
一、每个域名一个文件的写法
首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers ,如要绑定域名www.web126.com 则在此目录建一个文件:www.web126.com.conf 然后在此文件中写规则,如:
server
{
listen 80;
server_name www.web126.com; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/web126.com; #网站根目录
include location.conf; #调用其他规则,也可去除
}
然后重起nginx服务器,域名就绑定成功了
nginx服务器重起命令:/etc/init.d/nginx restart
二、一个文件多个域名的写法
一个文件添加多个域名的规则也是一样,只要把上面单个域名重复写下来就ok了,如:
server
{
listen 80;
server_name www.web126.com; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/web126.com; #网站根目录
include location.conf; #调用其他规则,也可去除
}
server
{
listen 80;
server_name msn.web126.com; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/msn.web126.com; #网站根目录
include location.conf; #调用其他规则,也可去除
}
三、不带www的域名加301跳转
如果不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不用写网站目录,而是进行301跳转,如:
server
{
listen 80;
server_name web126.com;
rewrite ^/(.*) http://www.web126.com/$1 permanent;
}
四、添加404网页
添加404网页,都可又直接在里面添加,如:
server
{
listen 80;
server_name www.web126.com; #绑定域名
index index.htm index.html index.php; #默认文件
root /home/www/web126.com; #网站根目录
include location.conf; #调用其他规则,也可去除
error_page 404 /404.html;
}
最后还有一个方法需要注意,可能有需要禁止IP直接访问80端口或者禁止非本站的域名绑定我们的IP,这样的话应该
如下处理,放到最前一个server上面即可:
server{
listen 80 default;
server_name _;
return 403;
}
学会上面四种规则方法,基本就可以自己独立解决nginx 多域名配置问题了
模块官方介绍:
http://wiki.nginx.org/HttpUpstreamModule
http://www.howtocn.org/nginx:Nginx%E6%A8%A1%E5%9D%97%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6%96%87%E7%89%88
说说upstream里的server指令:
server 后面可以是域名格式,也可以是socket格式[ip:port],后面还可以带参数。参数有下面几个:
weight = NUMBER - 设置服务器的权重值,默认为1. 值越大,分配的请求越多。只适用于轮询这种LB策略。
max_fails = NUMBER - 在fail_timeout设置的时间内,尝试连接服务器失败的次数.默认为1,0表示关闭检查.错误类型在proxy_next_upstream or fastcgi_next_upstream中定义,(除了404错误不计入max_fails).
fail_timeout = TIME - the time during which must occur *max_fails* number of unsuccessful attempts at communication with the server that would cause the server to be considered inoperative, and also the time for which the server will be considered inoperative (before another attempt is made). If not set the time is 10 seconds. fail_timeout has nothing to do with upstream response time, use proxy_connect_timeout and proxy_read_timeout for controlling this.
down - marks server as permanently offline, to be used with the directive ip_hash.
backup - (0.6.7 or later) only uses this server if the non-backup servers are all down or busy (cannot be used with the directive ip_hash)
nginx负载均衡的策略:
1.轮询(默认方式)
对于一级后端服务器群,形成一个环队列的形式,对于每个到达的请求按时间顺序顺次分配给这些后端服务器。在前端调度器与后端服务器之间采用“心跳”方式进行状态检查,如果发现后端服务器宕机,则将其删除。
这种方式为默认配置,优点是简洁,但缺点是无法进行最优化调度,有可能有的请求需要耗时较久,这样会带来一定的不平衡。
它的例子:在http区域里添加:
upstream lb {
server 10.10.57.122:80;
server 10.10.57.123:80;
}
在你的某个server里增加:
location / {
proxy_pass http://lb;
}
2. 加权轮询
这是一种对上述方式的改进,引入权值的概念,能够解决后端服务器性能不均的情况。
例如这样一个配置:
upstream lb {
server 10.10.57.122:80 weight=5;
server 10.10.57.123:80 weight=10;
}
ps:以上轮询负载均衡策略,我个人认为对于动态网站应用,这几乎就是形同摆设,没有人会采用。但一种情况例外:服务器端的session采用共享机制,如存储在数据库或者memcached内存里等。
3. ip_hash(基于ip的hash分配策略)
这是一种非轮询式方式,对于每个到达的请求,直接通过其请求IP进行哈希的映射,通过映射结果获得那一台后端服务器要处理这个请求,这种方式有一个明显的好处是能够保证session的唯一性。
它的配置例子:
upstream lb {
ip_hash;
server 10.10.57.122:80;
server 10.10.57.123:80;
}
在你的某个server里增加:
location / {
proxy_pass http://lb;
}
This directive causes requests to be distributed between upstreams based on the IP-address of the client.
The key for the hash is the class-C network address of the client. This method guarantees that the client request will always be transferred to the same server. But if this server is considered inoperative, then the request of this client will be transferred to another server. This gives a high probability clients will always connect to the same server.
It is not possible to combine ip_hash and weight methods for connection distribution. If one of the servers must be removed for some time, you must mark that server as *down*.
由这段英文解说知道,客户端只要来自同一网段的ip的request都会转发到相同的后端服务器上。这里的所谓的class-C network这里作者并没有很详细地解释,我只能说,写这句话的人不懂网络。我个人的理解是:以ip地址的点分十进制格式的前3个字节进行hash。
其实这不是真正意义上的ip address hash,而只是network address hash。真正的ip address hash方式有不?其实可以通过下面介绍的url_hash来实现。关键指令:hash $remote_addr;
不过这里有个前提,$remote_addr必须是client的real ip address。
为什么这里能够实现真正意义上的ip address hash?很简单,就是这里整个ip address被当作一个字符串来对待,故只要ip地址(key)不同,hash必然也是不同的。
4. url_hash(基于URL的哈希方式)
这种方式与IP的哈希方式类似,是对客户机请求的URL进行哈希操作,这样的方式有一个明显的好处是,能够便于内容缓存的实现,对于经常性的资源访问,采用这样的方式会获得非常好的质量。它目前不是nginx自带的功能,需要安装补丁方可使用。本指令的详细说明和安装见:(文章后面有附带详细安装实例)
http://wiki.nginx.org/HttpUpstreamRequestHashModule
它的配置方式为:
upstream lb {
server 10.10.57.122:80;
server 10.10.57.123:80;
hash $request_uri;
}
如果将这里的$request_uri换成$remote_addr便可实现上面我所说的真正基于ip地址的策略。
5. 基于服务响应式
这种方式是根据服务器端的动态响应,对每一个请求进行分配。 这种方式能够自动根据当前的后端实际负载来优化。
它的配置方式:
upstream lb {
server 10.10.57.122:80;
server 10.10.57.123:80;
fair;
}
这个没怎么测试,只是配起来用了下,机器差不多的话感觉就是轮询。
===============================
cd nginx-0.7.67;
patch -p0 < ../nginx_upstream_hash-0.3.1/nginx.patch
configure时:
./configure --prefix=/app/nginx -user=nobody -group=nobody \
--add-module=../nginx_upstream_hash-0.3.1/ \
--add-module=../gnosek-nginx-upstream-fair-2131c73/
发表评论
-
SSL证书与Https应用部署小结
2015-10-12 22:54 1178引用原文地址:http://han.guokai.bl ... -
nginx缓存动态页面功能的设置
2015-10-12 22:14 5631网上查了一下相关资料,主要是在需要缓存的路径加proxy_ ... -
Tengine:合并多CSS/JS为一次响应
2015-01-21 13:56 1833Tengine是由淘宝网发起 ... -
nginx处理web请求分析
2014-09-17 15:41 919Nginx是什么?Nginx是俄 ... -
nginx维护页面处理-全部URL指向同一个页面
2014-09-17 13:15 3715一般来说nginx的维护页面需要把所有访问本站的链接全部重定 ... -
nginx启动服务脚本
2014-09-03 11:49 1087#chkconfig: 345 60 60 #!/bin/ ... -
Nginx反向代理&前端全缓存相关配置教程【转】
2012-12-13 11:25 1363最近一直在研究这方面的配置,只是脚本比较复杂。在网上用力 ... -
查看网站页面速度并评分的网站
2012-03-09 02:47 1101http://gtmetrix.com/ -
nginx前端代理tomcat取真实客户端IP
2012-03-08 01:01 2542使用Nginx作为反向代理时,Tomcat的 ... -
nginx中禁止屏蔽网络爬虫
2012-03-07 15:32 6630server { listen ... -
nginx禁止IP直接访问或者禁止非本站的域名访问
2012-03-06 18:04 2390可能有需要禁止IP直接访问80端口或者禁止非本站的域名绑 ... -
nginx与tomcat的动静分离
2012-02-24 23:48 2730http://www.oschina.net/code/sni ... -
Linux中安装nginx以及启动、关闭和重启命令
2011-12-04 18:30 5505首先当然得去 www.nginx.net下载,nginx,我下 ... -
nginx 配置tomcat代理
2011-09-02 11:08 1549server { listen ... -
nginx的域名重定向配置
2011-08-01 10:21 4436把不带www的子域名重定向到带www的主域名上 ... -
nginx在windows下的命令
2011-06-09 14:35 1226检测conf文件 nginx -t 重载配置并重启 ng ...
相关推荐
本教程将详细介绍如何通过Nginx配置实现对Tomcat服务器集群的负载均衡,从而提高系统的稳定性和处理能力。 首先,我们需要理解Nginx和Tomcat各自的角色。Nginx是一款高性能的反向代理服务器和HTTP缓存,它以其高效...
在nginx.conf中配置负载均衡主要涉及三个步骤: 1. 配置服务器组(upstream模块) 在http块中添加upstream模块来定义一组服务器。服务器可以指定IP地址、域名或者UNIX套接字。upstream模块中的服务器后可以设置权重...
### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...
### Nginx+Tomcat负载均衡配置教程 #### 一、Nginx 安装与配置 **1. 下载并安装Nginx** - **下载Nginx**:前往Nginx官方网站下载适合您操作系统的最新版本。推荐下载稳定版以确保运行稳定。 - **解压文件**:将...
- **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...
例如,配置负载均衡时,可以设置一组web服务器的地址和端口,然后在server块中设置监听端口和域名,通过proxy_pass指令将请求转发到upstream定义的服务器组。 配置示例如下: upstream myapp1 { ***; ***; ***;...
在Linux系统中,安装Nginx并配置负载均衡通常包括以下步骤: 1. 创建Nginx运行的用户和组。 2. 下载并编译安装Nginx及必要的模块,如rewrite模块。 3. 备份默认的`nginx.conf`配置文件。 4. 编辑`nginx.conf`,配置...
Nginx的特点是: 1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构; 2、Nginx对网络的依赖比较小;... 另外默认的只有Round-robin和IP-hash两种负载均衡算法。
nginx负载均衡的配置,二级域名的配置
Nginx 是一款开源且高性能的 Web ...总结,Nginx 的负载均衡搭建及配置涉及了系统环境准备、Nginx 特性介绍、安装步骤以及基础配置。通过合理的配置,Nginx 可以有效地分发流量,提高服务器的运行效率和系统的可用性。
Nginx 负载均衡配置是一种常见的解决方案,它可以将网络流量分配到多个服务器上,以提高网站的可用性和性能。在本文中,我们将详细介绍 Nginx 负载均衡配置的实现过程。 一、测试环境 在开始配置之前,我们需要先...
# 可选:配置负载均衡策略 # round-robin (默认):轮流分配请求 # least_conn:分配给当前连接数最少的服务器 # ip_hash:基于客户端IP地址分配,保证同一客户端的请求总是被转发到同一台服务器 } ``` 4. **...
本教程将探讨如何在Windows环境中利用Nginx作为反向代理服务器,与多个Tomcat实例配合,搭建一个负载均衡和集群的系统。这个压缩包包含多个版本的Tomcat,即qdky-tomcat-6.0.44.6、qdky-tomcat-6.0.44.5、qdks-...
同时,Nginx 可以根据策略将请求分发到多个后端服务器,实现负载均衡,提升系统的整体处理能力。 例如,Nginx 配置中可以包含以下部分: ```nginx http { upstream backend { server 127.0.0.1:8888; server ...
"nginx+tomcat多域名配置"就是一种高效且灵活的解决方案,它结合了Nginx作为前端反向代理服务器和Tomcat作为后端应用服务器的优势。下面将详细介绍这个配置的原理、步骤以及注意事项。 1. **Nginx与Tomcat的角色**...
本篇文章将详细介绍如何配置Nginx实现对多个Tomcat实例的负载均衡。 首先,我们需要了解Nginx的基本工作原理。Nginx通过接收客户端的请求,然后根据预设的策略将这些请求转发到不同的后端服务器(例如Tomcat)。...