参考地址:
http://www.chinanginx.cn/?page_id=227 nginx中文官网
http://www.nginx.cn/2181.html
http://cxshun.iteye.com/blog/1535188
http://ari.iteye.com/blog/833153
http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html
要求配置nginx主从关系可以参考:
http://www.server110.com/nginx/201309/1309.html
环境:Window + Nginx+Tomcat6
1、nginx简介:
Nginx (发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。
2、下载地址:http://nginx.org/ ,文章附件有下载。
3、本文主要基于Nginx下配置两台tomcat,结构如下图:
3、目录结构
Nginx-
|_ conf 配置目录
|_ contrib
|_ docs 文档目录
|_ logs 日志目录
|_ temp 临时文件目录
|_ html 静态页面目录
|_ nginx.exe 主程序
window下安装Nginx极其简单,解压缩到一个无空格的英文目录即可(个人习惯,担心中文出问题),双击nginx.exe启动。
也可以在dos目录下启动、跟新、停止,我的nginx是在D:\nginx-1.5.8路径下,dos下操作如下图:
启动:
停止:
重新加载文件:当修改了nginx文件,如配置文件。。。。。如果nginx开着不需要关闭服务器重启,直接执行该命令重新加载文件就可以了。
启动后我们打开任务管理器,可以看到两个nginx.exe在那里好好的。这说明我们已经启动了,至于为什么两个,我们这里不深究,在浏览器中输入:http://localhost可以看到如图,说明启动成功。
4、nginx.conf配置文件说明
Nginx配置文件默认在conf目录,主要配置文件为nginx.conf,我们安装在D:\nginx-1.5.8、默认主配置文件 为D:\nginx-1.5.8\conf\nginx.conf。下面是nginx作为前端反向代理服务器的配置。
dome里一个server的说明:
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
这段代码在server里面,相当于一个代理服务器,可以配置多个,但是端口listen必须配置不一样。
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地;
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。
5、自己配置最简单的转发:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8013/nginxTest/index.jsp;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
server_name 在这里可以不配置;
proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹;
配置完成后输入:http://localhost 可以进入 proxy_pass指定的页面,表示成功;
6、自己配置一台负载均衡机器,负载两台服务器:
#Nginx所用用户和组,window下不指定
#user nobody;
#工作的子进程数量(通常等于CPU数量或者2倍于CPU)
worker_processes 2;
#错误日志存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放文件
#pid logs/nginx.pid;
events {
#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
#use epoll;
#允许最大连接数
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
charset utf-8;
#定义日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#跳转服务的别名
#upstream 指定负载均衡的机器服务器地址,这里我们我们用没有多台机器,用不同的端口来区分;
upstream nginxTestUrl {
#weigth 参数表示权值,权值越高被分配到的几率越大,可以不配
server 192.168.3.189:8013 weight=1;
server 192.168.3.189:8023 weight=1;
#ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,不需要可以不配
#ip_hash;
}
server {
listen 80;
server_name localhost;
#access_log logs/host.access.log main;
location / {
#proxy_pass 随机转向到配置的服务器上,配置形式直接用http://+upstream的名称来使用
#upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加
proxy_pass http://nginxTestUrl;
#proxy_redirect proxy_set_header 必须配置,不然如果后端真是的服务器设置有类似防盗链或者根据http请求头中的host字段来进行路由或判断功能的话,
#如果反向代理层的nginx不重写请求头中的host字段,将会导致请求失败在查找项目的时候会找不到资源
#说明链接:http://zhidao.baidu.com/link?url=Ify6aPe0tTcOlLuO2zuYkLIH_ITT-aThzXVIFf3yTFOKpcF314SQyrcYY5j0Awk4xU6Qb0JSaDESLBoKKnIVuK
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#下面是一些优化配置,测试可以不用配置
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 1; #nginx跟后端服务器连接超时时间(代理连接超时),时间设置短一些可以解决多台服务器突然出现的某一台down机器引起的链接超时
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
设置反向代理的时间可以解决因某台服务去down机而引起的链接超时问题:
proxy_connect_timeout 1;
proxy_send_timeout 30;
proxy_read_timeout 60;
- 大小: 48 KB
- 大小: 538 Bytes
- 大小: 426 Bytes
- 大小: 458 Bytes
- 大小: 67.4 KB
- 大小: 53.3 KB
分享到:
相关推荐
Nginx++Keepalived+Tomcat负载均衡&动静分离配置 本文主要介绍了Nginx、Keepalived和Tomcat的负载均衡和动静分离配置,旨在帮助读者了解如何搭建高可用、高性能的Web应用系统。 一、环境准备 在开始配置之前,...
码头工人组成烧瓶 +-------------+ +------------+ +--------------+ +-----------+ | | | | | | | | | nginx +-------+ gunicorn +---------+ flask app +-----+ redis | | | | | |
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
nginx-rtmp-win64;nginx-rtmp-win64 nginx-rtmp-win64 nginx-rtmp-win64 nginx-rtmp-win64 nginx-rtmp-win64nginx-rtmp-win64
高并发负载均衡-Nginx安装思维导图,便捷整理思路,里面记载了Nginx安装的步骤以及注意事项,以及常用场景
本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...
在构建高性能、高可用性的Web服务环境中,"负载均衡nginx+tomcat+terracotta+nfs+mysql"是一个常见的架构组合。这个组合充分利用了各组件的优势,以实现数据的高效处理、分布式存储以及会话共享,确保系统的稳定性和...
Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明 为了多台后台的web、webservice服务能均衡负载,可以使用nginx进行处理 1)配置文件全配制ok 2)有两个完整的web服务做例子,可以...
基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + ...
本文将详细介绍如何通过`Nginx+KeepAlived+Tomcat`构建一个稳定、高效的负载均衡架构。 #### 二、关键技术介绍 ##### 1. Nginx - **简介**:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)...
- 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...
本篇将详细讲解如何在Nginx+Tomcat+Redis环境中实现负载均衡,并讨论session管理的关键知识点。 首先,Nginx是一个强大的HTTP和反向代理服务器,它能够通过分发请求到多个后端服务器来实现负载均衡。Nginx支持多种...
`nginx` 是一款高性能的反向代理服务器,常用于实现负载均衡,而 `Eureka` 是 Netflix 提供的一个服务注册与发现组件,是微服务架构中的关键组件。本实例将讲解如何结合 `nginx` 和 `Eureka` 实现微服务的负载均衡,...
Nginx支持多种负载均衡策略,如轮询、最少连接、IP哈希等,可以根据实际需求选择合适的策略。 2. **Redis**:作为内存数据库,Redis提供高速的数据读写性能,尤其适合用于缓存服务。在高并发场景下,通过将热点数据...
1. Nginx是一个高性能的Web服务器,常用于提供静态内容服务、反向代理和负载均衡。 2. nginx-rtmp-module是一个扩展模块,使Nginx支持RTMP协议,用于处理实时流媒体。 3. RTMP是一种实时通信协议,常用于视频直播和...
在本教程中,我们将深入探讨如何在Linux环境中源码安装MySQL、MySQL主从复制、Nginx、Nginx负载均衡、Redis、PHP、phpredis以及Tomcat。这些技术是构建高效、可扩展的Web应用架构的基础。让我们逐一了解安装过程。 ...
负载均衡 ngix 1,virtual-service-address:是指虚拟服务器的ip 地址 2,real-service-address:是指真实服务器的ip 地址 3,scheduler:调度方法 (lna@networksbase.com 翻译 ipvsadm v1.21 2004 年4 月) ...
centos源码安装nginx-1.20.2+nginx负载均衡
在搭建均衡负载集群时,首先需要配置Nginx的反向代理和负载均衡设置。在Nginx的配置文件中,可以通过`upstream`块定义一组后端服务器,然后在`server`块中使用`proxy_pass`指令将请求转发到该组服务器。常用的负载...