Nginx HTTP负载均衡和反向代理配置

当前大并发的网站基本都采用了Nginx来做代理服务器,并且做缓存,来扛住大并发。先前也用nginx配置过简单的代理,今天有时间把整合过程拿出来和大家分享,不过其中大部分也是网上找来的资源。

nginx完整的反向代理代码如下所示  :

[[email protected] conf]# vim nginx.conf

user  www www;

worker_processes  10;

error_log  /var/log/nginx/nginx_error.log;

pid        logs/nginx.pid;

worker_rlimit_nofile 65535

events {

use epoll;

worker_connections  65535;

}

http {

include       mime.types;

default_type  application/octet-stream;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

sendfile        on;

tcp_nopush     on;

keepalive_timeout  65;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

gzip  on;

gzip_min_length  1k;

gzip_buffers     4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

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  600;   #跟后端服务器连接超时时间,发起握手等候响应超时时间

proxy_read_timeout   600;   #连接成功后,等候后端服务器响应时间,在后端排队中等候

proxy_send_timeout 600; #后端服务器数据回传时间,就是在规定时间内后端服务器必须传完所有数

proxy_buffer_size 16k; #代理请求缓存区,这个缓存区间会保存用户的信息以供nginx进行规则处理,一般只要能保存下头信息即可

proxy_buffers 4 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:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.1.101:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.1.102:80 weight=4 max_fails=2 fail_timeout=30s;

}

upstream message_server_pool {

server 192.168.1.103:3245;

server 192.168.1.104:3245 down;

}

upstream bbs_server_pool {

server 192.168.1.105:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.1.106:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.1.107:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.1.108:80 weight=4 max_fails=2 fail_timeout=30s;

}

#第一个虚拟主机,反向代理php_server_pool这组服务器

server {

listen       80;

server_name  www.chlinux.net;

access_log  /var/log/nginx/www.chlinux.net_access.log  main;

location / {

#如果后端服务器返回502、504、执行超时等错误,自动将请求转发到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       80;

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       80;

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等缓存服务器。

时间: 2024-10-19 01:53:01

Nginx HTTP负载均衡和反向代理配置的相关文章

Nginx HTTP 负载均衡和反向代理

1.负载均衡和反向代理介绍 负载均衡是多台服务器对称方式组成一个服务器的集合,每个服务器都能单独对外提供服务,通过负载均衡技术,将客户端请求均匀的分配到服务器集合中的某个服务器上,然后服务器独立响应客户端的请求,这样解决了高并发的访问. 反向代理是指以代理服务器接受用户请求,然后将请求,转发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,这时代理服务器对外表现为一个服务器,代理服务器上没有保存任何的网页数据,所有的静态网页和CGI程序都保存在内部网络上的web服务器上,增加了web服务

nginx负载均衡以及反向代理配置

记录一下方便以后自己查看 1.环境准备 lb-01:192.168.33.135 nginx-lb centos7 rs-01:192.168.33.131 apache-web centos6.x rs-02:192.168.33.132 nginx-web centos6.x 2.环境安装 lb-01 安装nginx,配置nginx源 # cat /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.

Nginx+Tomcat负载均衡群集+反向代理

实验环境 Nginx服务器(192.168.13.177) Tomcat1服务器(192.168.13.151) Tomcat2服务器 (192.168.13.178) client测试机 一,负载均衡 1,在Tomcat1,Tomcat2上安装Tomcat服务 [[email protected] ~]# systemctl stop firewalld.service ##关闭防火墙 [[email protected] ~]# mkdir /abc [[email protected] ~

Nginx负载均衡与反向代理的配置和优化

什么是负载均衡和反向代理? 随着网站访问量的快速增长,单台服务器已经无法承担大量用户的并发访问,必须采用多台服务器协同工作,以提高计算机系统的处理能力和计算强度,满足当前业务量的需求.而如何在完成同样的功能的多个网络设备之间实现合理的业务量的分配,使之不会出现一台设备过忙.而其他的设备却没有充分使用的情况.要解决这一问题,可以采用负载均衡的方法. 负载均衡: 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过负载均

Nginx负载均衡及反向代理

Nginx 负载均衡 什么是nginx负载均衡? Nginx作为一个强大的web服务器管理软件,自身带有负载均衡和反向代理的功能,那么他和lvs之间有什么区别呢? LVS负载:是基于4层的负载均衡, 优点: 1抗负载能力强 2配置性低 3工作稳定 4无流量 5基本支持所有应用负载均衡,如WEB,数据库 Nginx负载:基于7层的负载均衡 特点: 1nginx工作在网络7层,他可以针对http本身做分发策略,如域名,目录结构等 2nginx对网络依赖小 3配置简单,测试方便 4nginx同样能承受

CentOS中实现Nginx负载均衡和反向代理

一.安装必要软件 负载均衡服务器:IP设置为192.168.1.10 Web服务器1:安装Apache或者Nginx,IP设置为192.168.1.11: Web服务器2:安装Apache或者Nginx,IP设置为192.168.1.12. 二.配置负载均衡服务器 1.在Nginx的conf目录下新建extra文件夹,并在其下边编辑生成一个配置文件,比如t_servers.conf upstream test_servers { server 192.168.1.11:80 weight=5;

nginx全面解析【负载均衡、反向代理、高可用、宕机容错】

nginx全面解析[负载均衡.反向代理.高可用.宕机容错]原创itcats_cn 最后发布于2018-09-06 10:24:33 阅读数 15799 收藏展开什么是nginx?nginx是一款高性能的http服务器,官方测试nginx能够支支撑5万并发链接,并且cpu.内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx. nginx有什么作用?1.负载均衡(可以减轻单台服务器的压力) 2.反向代理(隐藏企业真实的ip地址) 3.搭建虚拟服务器 4.用做静态服务器(实

Nginx负载均衡,反向代理,再从防火墙做转发后,css样式与端口丢失!

Nginx负载均衡,反向代理,再从防火墙做转发后,报错,用外网IP+端口访问,结果css样式与端口都丢失!!!!!内网IP+端口访问,正常! 解决思路:用chrome的network标签,分析项目的路径与端口!将配置文件中无用的干掉! 亲测改好的配置文件,注意注释信息!!!! vi conf/nginx.conf worker_processes  auto; worker_rlimit_nofile 10000; events {     worker_connections  2048;  

每天进步一点点——负载均衡之反向代理

转载请说明出处:http://blog.csdn.net/cywosp/article/details/38026809 反向代理(Reverse Proxy)方式是指以代理server来接受internet上的连接请求,然后将请求转发给内部网络上的server,并将从server上得到的结果返回给internet上请求连接的client,此时代理server对外就表现为一个server,该server就可称之为代理server.因为代理server处在终于处理请求訪问的server之前,因此能