Nginx HTTP负载均衡和反向代理配置
当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发。先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源。
nginx完整的反向代理代码如下所示 :
[root@data conf]# vim nginx.conf
user www www;
worker_processes ; error_log /var/log/nginx/nginx_error.log; pid logs/nginx.pid; worker_rlimit_nofile
events {
use epoll;
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream; server_names_hash_bucket_size ;
client_header_buffer_size 32k;
large_client_header_buffers 32k;
sendfile on;
tcp_nopush on; keepalive_timeout ;
fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
fastcgi_buffer_size 64k;
fastcgi_buffers 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; gzip on;
gzip_min_length 1k;
gzip_buffers 16k;
gzip_http_version 1.0;
gzip_comp_level ;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on; client_max_body_size 300m; #允许客户端请求的最大单个文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout ; #跟后端服务器连接超时时间,发起握手等候响应超时时间
proxy_read_timeout ; #连接成功后,等候后端服务器响应时间,在后端排队中等候
proxy_send_timeout ; #后端服务器数据回传时间,就是在规定时间内后端服务器必须传完所有数
proxy_buffer_size 16k; #代理请求缓存区,这个缓存区间会保存用户的信息以供nginx进行规则处理,一般只要能保存下头信息即可
proxy_buffers 32k; #同上,告诉nginx保存单个用的几个Buffer最大用多大空间
proxy_busy_buffers_size 54k; #如果系统很忙可以申请用的几个更大的proxy_buffer
proxy_temp_file_write_size 64k; #缓存临时文件大小 upstream php_server_pool {
server 192.168.1.100: weight= max_fails= fail_timeout=30s;
server 192.168.1.101: weight= max_fails= fail_timeout=30s;
server 192.168.1.102: weight= max_fails= fail_timeout=30s;
}
upstream message_server_pool {
server 192.168.1.103:;
server 192.168.1.104: down;
}
upstream bbs_server_pool {
server 192.168.1.105: weight= max_fails= fail_timeout=30s;
server 192.168.1.106: weight= max_fails= fail_timeout=30s;
server 192.168.1.107: weight= max_fails= fail_timeout=30s;
server 192.168.1.108: weight= max_fails= fail_timeout=30s;
}
#第一个虚拟主机,反向代理php_server_pool这组服务器
server {
listen ;
server_name www.chlinux.net;
access_log /var/log/nginx/www.chlinux.net_access.log main;
location / {
#如果后端服务器返回502、、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://php_server_pool;
proxy_set_header Host www.chlinux.net;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
#第二个虚拟主机
server {
listen ;
server_name bbs.chlinux.net;
access_log /var/log/nginx/www.chlinux.net_access.log main;
#访问http://bbs.chlinux.net/message/***地址,反向代理message_server_pool这组服务器
location /message/ {
proxy_pass http://message_server_pool;
proxy_set_header Host $host;
}
#访问除了/message/之外的http://bbs.chlinux.net/***地址,反向代理php_server_pool这组服务器
location /message/ {
proxy_pass http://bbs_server_pool;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
#第三个虚拟主机
server {
listen ;
server_name forum.chlinux.net;
access_log /var/log/nginx/www.chlinux.net_access.log main;
location / { proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://php_server_pool;
proxy_set_header Host www.chlinux.net;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
通过上述所示,已经看到nginx对于多个域名的负载均衡是如何配置的。pustream指令用于设置一组可以再proxy_pass和fastcgi_pass指令中使用的代理服务器,upstream模块中的server指令用于指定后端服务器的名称和参数,服务器的名称可以是一个域名、一个IP地址、端口号或UNIX Socket
nginx反向代理可以配置动、静态网页分离,就是让动态PHP等程序网页访问PHP web服务器,让缓存页、图片、javascript、CSS、Flash访问squid等缓存服务器。
Nginx HTTP负载均衡和反向代理配置的更多相关文章
- Nginx(六):Nginx HTTP负载均衡和反向代理的配置与优化
一.什么是负载均衡和反向代理 随着网站访问量的快速增长,单台服务器已经无法承担大量用户的并发访问,必须釆用多台服务器协同工作,以提高计算机系统的处理能力和计算强度,满足当前业务量的需求.而如何在完成同 ...
- Nginx HTTP负载均衡和反向代理的配置与优化
一.什么是负载均衡和反向代理 1.负载均衡 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器具有等价的地位,都可以单独提供服务而无需其他服务的辅助.通过某种负载分担技术,将外部发送来的 ...
- Nginx 之负载均衡与反向代理
负载均衡服务器策略: 1.轮循 每个请求逐个分发到后端服务器 2.加权轮循 按照分配的权重将请求分发到后端服务器 3.ip hash 轮询的基础上,保持一个客户端多次请求分发到一台后端服务器上 一 ...
- nginx的负载均衡和反向代理
本文介绍一些负载均衡和反向代理的一些基本概念,然后介绍如何基于nginx实现,包括两种安装nginx的方法:yum安装和源码安装,以及ngix该如何配置等. 什么是负载均衡? 概念 负载均衡是高可用网 ...
- nginx的负载均衡和反响代理配置
4. 负载均衡配置 nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 另外 ...
- nginx负载均衡和反向代理有什么区别
近在研究nginx的负载均衡和反向代理,先看下这两个简单的配置吧! 负载均衡 worker_processes 1; events { worker_connections 1024; } http{ ...
- CentOS中实现Nginx负载均衡和反向代理
一.安装必要软件 负载均衡服务器:IP设置为192.168.1.10 Web服务器1:安装Apache或者Nginx,IP设置为192.168.1.11: Web服务器2:安装Apache或者Ngin ...
- Nginx 负载均衡和反向代理实践
nginx 以哪个配置文件启动 Nginx 负载均衡和反向代理实践 环境介绍 192.168.1.50 在这台主机上配置Nginx 的反向代理,负载均衡,和web1,web1使用的81号端口 1 ...
- 【架构师之路】Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》
本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用 ...
随机推荐
- [JS9] document's bgColor改变背景颜色
<HTML> <HEAD> <TITLE>设置背景颜色</TITLE> </HEAD> <BODY> <CENTER> ...
- 【转】关于KDD Cup '99 数据集的警告,希望从事相关工作的伙伴注意
Features From: Terry Brugger Date: 15 Sep 2007 Subject: KDD Cup '99 dataset (Network Intrusion) cons ...
- Atitit. 构造ast 语法树的总结attilax v2 q0f
Atitit. 构造ast 语法树的总结attilax v2 q0f 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 ...
- paip.基于urlrewrite的反向代理以及内容改写
paip.基于urlrewrite的反向代理以及内容改写 ---------反向代理 RewriteCond %{REQUEST_URI} !=/process.php RewriteRule ^( ...
- Essential C++中文版 前言
天啊,这本书竟是如此轻薄短小.我真想大叫一声“哇欧”!C++ Primer 加上索引.扉页.谢词之后,厚达1237 页,而此书却只有薄薄276 页.套句拳击术语,这是一部“轻量级”作品. 每个人都会好 ...
- 从MySQL 5.5到5.7看复制的演进
概要:MySQL 5.5 支持单线程模式复制,MySQL 5.6 支持库级别的并行复制,MySQL 5.7 支持事务级别并行复制.结合这个主线我们可以来分析一下MySQL以及社区发展的一个前因后果. ...
- js程序设计03——面向对象
ECMAScript中有2中属性:数据属性.访问器属性. 数据属性是为了指定某对象的指定key上的一些行为,比如value是否可删除.修改.key可循环遍历等特点.而访问器属性不包含数据值,包含一堆g ...
- GET请求中URL的最大长度限制总结
由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制. 若要支持IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个字符. 若是Chrom ...
- quartzScheduler_Worker-1] but has failed to stop it. This is very likely to create a memory leak解决
01-Jul-2016 07:24:20.218 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 80 ...
- 通过反射获取Android通知栏高度
public static int getStatusBarHeight(Context context){ Class<?> c = null; Object obj = null; F ...