阅读(865)

实例讲解Nginx反向代理和负载均衡

最后一次修改 2017年12月22日

本文主要和大家分享Nginx反向代理和负载均衡实践,希望能帮助到大家。Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能。nginx可以自动剔除停止服务的服务器,保证web服务的正常访问。

本例实现一个用户访问192.168.1.4,将其代理到192.168.1.2:80、192.168.1.3:80这两台服务器实现负载。

以下为配置文件 nginx.conf:

user www www;
worker_processes 10;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#最大文件描述符
worker_rlimit_nofile 51200;
events {
worker_connections 51200;
}
http {
include conf/mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;

#nginx的upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,

#如果后端服务器down掉,能自动剔除。另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,

#这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream webserver  {

server 192.168.1.2:80 weight=1;

server 192.168.1.3:80 weight=1;

}

server{

listen 80;

server_name localhost;

location / {

#设置反向代理的地址

proxy_pass http://webserver;

#设置主机头和客户端真实地址,以便服务器获取客户端真实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;

}

log_format localhost '$remote_addr - $remote_user [$time_local] $request '

'"$status" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /data1/logs/www.log localhost ;

}

}  

以上就是Nginx反向代理和负载均衡实践的相关教程,希望能帮助到大家,更多相关内容欢迎大家关注我们。

相关推荐:

Apache和Nginx如何选择

使用nginx搭建高可用,高并发的wcf集群

php利用Nginx如何实现反向代理