`
y806839048
  • 浏览: 1117364 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Nginx反向代理和负载均衡部署指南

阅读更多

 1.        安装

1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;

2)         解压后复制到部署目录。

 

2.        启动和停止Nginx

Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。

1)         启动Nginx:start nginx

2)         停止Nginx:nginx -s stop

3)         修改配置后重启:nginx -s reload

这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。

start nginx.bat文件内容:start nginx

stop nginx.bat文件内容:nginx -s stop

reload nginx.bat文件内容:nginx -s reload

 

3.        反向代理配置

修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。

反向代理配置示例:

location / {

        #设置主机头和客户端真实地址,以便服务器获取客户端真实IP

             proxy_set_header Host $host;

             proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

             #禁用缓存

             proxy_buffering off;

 

             #设置反向代理的地址

             proxy_pass http://192.168.1.1;       

      }

代理地址根据实际情况修改。

 

4.        负载均衡配置

nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 

 

负载均衡配置示例:

///nginx相对路劲的会直接加上项目名,2upstram用ip(代理)地址

upstream backend {

             #ip_hash;//iphash和权重选择一个

 

//tomcat发布到root方法在负载时直接ip+端口即可访问(因为这里不可以配置项目名只能ip+端口)(见tomcat一文)

             server 192.168.1.251;

             server 192.168.1.252;

             server 192.168.1.247;

 

         }

 

server {

        listen       80;

        server_name  trffweb;

 

        location / {

 

             #反向代理的地址

             proxy_pass http://backend;     

        }

}

 

Upstream命名和服务器地址根据实际情况修改。

 

5.        完整配置示例

nginx.conf:

 

worker_processes  1;

events {

    worker_connections  1024;

}

 

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

 

    upstream backend {

             #ip_hash;

             server 192.168.1.251;

             server 192.168.1.252;

             server 192.168.1.247;

         }

 

    server {

        listen       80;

        server_name  2;

 

        location / {

        #设置主机头和客户端真实地址,以便服务器获取客户端真实IP

             proxy_set_header Host $host;

             proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

             #禁用缓存

             proxy_buffering off;

 

             #反向代理的地址

             proxy_pass http://backend;     

        }

    }

 

}

 

 

注意:

 

nginx 错误502 upstream sent too big header while reading response header from upstream

按字面意思理解应该是upstream负载均衡的模块转发的header头超出限制值了,查看配置文件中的相关配置,并搜索相关信息。

网上同类型的错误原因,说是cookie携带的header太多了

和tomcat设置maxHttpHeaderSize一样

 <Connector port="8080" maxHttpHeaderSize="102400" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

 

 

在http配置段设置
{
                proxy_buffer_size  128k;

                proxy_buffers   32 32k;

                proxy_busy_buffers_size 128k;
        
        proxy_temp_file_write_size 128k;
}
proxy_temp_file_write_size 这个选项的值不能小于proxy_buffer_size,否则报错。
优化后,错误日志中没有继续出现报错。
另外,如果你用nginx做负载均衡的话,改了上述参数没用的的话,在转发的配置上,修改proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size的值。
配置示例:
location / {

                proxy_buffer_size  128k;

                proxy_buffers   32 32k;

                proxy_busy_buffers_size 128k;

                add_header X-Static transfer;

                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;

                proxy_pass http://backend;    

        }

 

总结原因:
proxy是nginx作为client转发时使用的,如果header过大,超出了默认的1k,就会引发上述的upstream sent too big header。

fastcgi_* 可以理解成nginx接受client请求时的响应使用的。

 

参看:

http://blog.csdn.net/haitun312366/article/details/12647237

http://www.nginx.cn/76.html  //配置项的说明

分享到:
评论

相关推荐

    详解Nginx反向代理和负载均衡部署指南

    Nginx反向代理和负载均衡部署指南,具体如下: 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包; 2) 解压后复制到部署目录。  2. 启动和...

    nginx+tomcat搭建负载均衡

    4. **Nginx反向代理**:在Nginx配置中定义一个或多个location块,将特定URL请求转发到Tomcat集群中的某个实例。 5. **负载均衡策略**:除了轮询外,还可以选择最少连接数(least connections)、IP哈希(IP_hash)等...

    详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点

    上一篇分享了 Nginx + Tomcat 反向代理 负载均衡 集群 部署指南,感觉还是相当实用型的,但是一般集群部署是基于大访问量的,可能有的企业用不到,类似一些企业官网,访问量并不是很大,基于这个新需求,今天专门为...

    【Nginx】Windows平台下配置Nginx服务实现负载均衡.doc

    2. **添加负载均衡规则:** 在配置文件中添加负载均衡的相关规则,例如监听10080端口,并将流量反向代理到18888、18889、18890这三个端口。 ```nginx http { upstream backend { server 127.0.0.1:18888 weight=...

    nginx+tomcat负载均衡实现

    `nginx`作为一款高性能的反向代理服务器和负载均衡器,常用于处理静态资源和分配请求,而`tomcat`则是Java应用服务器,专门处理动态内容。本文将深入探讨如何利用`nginx`和`tomcat`实现负载均衡,以提升系统性能和...

    Nginx+Redis+Tomcat 集群部署

    这种模式结合了Nginx的反向代理和负载均衡能力,Redis的数据缓存功能,以及Tomcat的Java应用服务器性能,能够有效提升系统的并发处理能力和响应速度。 Nginx,作为前端的反向代理服务器,主要负责接收客户端的请求...

    linux下nginx+tomcat负载均衡配置

    在Linux环境下,构建一个高效的Web服务架构通常会结合Nginx和Tomcat,利用Nginx的反向代理和负载均衡能力,以及Tomcat对于Java应用的出色支持。本配置指南将详细介绍如何在Linux系统中设置Nginx与Tomcat的负载均衡...

    Nginx 安装部署配置说明

    通过本指南,你应该能够在 Linux 系统上安装并配置 Nginx,并理解基本的 Nginx 配置,包括虚拟主机、反向代理和负载均衡。Nginx 是一个强大而灵活的服务器,进一步的配置和优化可以根据具体需求进行。

    suse11下Nginx负载均衡安装流程

    Nginx作为一款高性能的HTTP和反向代理Web服务器,因其优秀的性能和灵活性,在负载均衡方面有着广泛的应用。本篇文章将详细介绍如何在SUSE 11操作系统下安装配置Nginx以实现负载均衡。 #### 二、环境准备 在进行...

    Nginx+tomcat负载均衡集群session复制 windos

    本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...

    Nginx权威指南.pdf

    读者将学习到如何通过配置文件来定制Nginx的行为,如设置虚拟主机、处理静态文件、反向代理、负载均衡等。 在服务器块和location块的配置中,Nginx提供了丰富的功能。例如,通过反向代理可以将客户端请求转发到后端...

    nginx+redis+tomcat集群和负载均衡-可以直接使用软件都在里面了

    - Nginx配置文件:这些文件定义了Nginx服务器的行为,包括如何进行反向代理和负载均衡。 - Redis安装包或配置文件:用于安装和配置Redis服务器,包括设置端口、密码保护、持久化策略等。 - Tomcat安装包和Web应用:...

    线上一键部署keepalived+nginx

    这样的脚本通常会包含以下步骤:安装Keepalived和Nginx,配置Keepalived的VRRP参数以实现主备切换,配置Nginx的反向代理和负载均衡规则,以及进行必要的安全设置和测试。 在提供的压缩包文件"keepalived_nginx"中,...

    Nginx 中文版学习指南

    总之,《Nginx 中文版学习指南》是深入理解并掌握Nginx负载均衡和反向代理的宝贵资源,无论是对初学者还是经验丰富的IT从业者,都能从中受益。通过学习和实践,读者将能够构建起高效、安全、可扩展的Web服务架构。

    Nginx Tomcat集群部署说明

    【Nginx Tomcat集群部署】是Web服务领域常见的高可用性和负载均衡解决方案,通过结合Nginx的反向代理和负载均衡功能与Tomcat的Java应用服务器能力,可以构建出稳定且高效的Web应用程序环境。以下是对这个主题的详细...

    最新Nginx1.9.4+Tomcat+Memcached负载均衡配置.rar

    在提供的压缩包"**Nginx+Tomcat+Memcached负载均衡配置**"中,可能包含了Nginx的配置文件、Tomcat服务器的配置、Memcached的配置,以及可能的脚本或指南,帮助用户设置和管理这个复杂的系统。用户需要按照文档的指示...

    keepalived nginx 部署安装包

    - 安装nginx:然后,安装nginx,并根据需求配置反向代理和负载均衡策略。 - 配置主备服务器:在两台服务器上分别配置keepalived,设定主、备角色,并确保备份服务器在主服务器故障时能够接管服务。 - 启动和测试...

    nginx自动编译部署

    在实际应用中,Nginx的配置可能涉及负载均衡、反向代理、SSL证书配置、静态资源处理等多种功能。理解这些配置项和它们的作用,对于管理和优化Web服务至关重要。此外,熟悉Shell脚本编程能够使我们更加灵活地自动化...

    nginx cookbook

    在这一部分中,作者详细介绍了Nginx如何作为高效的负载均衡器,通过反向代理和负载均衡策略(如轮询、最少连接、IP哈希等)来分发网络流量,确保服务器集群的高效运行。同时,Nginx的内置HTTP缓存机制也被详尽讲解,...

Global site tag (gtag.js) - Google Analytics