www.zyan.cc 和 blog.zyan.cc 域名均指向 Nginx 所在的服务器IP。
用户访问http://www.zyan.cc,将其负载均衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。
用户访问http://blog.zyan.cc,将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。
以下为配置文件nginx.conf:
附:Nginx 的安装方法可参照《Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器》文章的以下段落(仅做负载均衡,无需支持PHP的安装方法):
二、安装PHP 5.2.4(FastCGI模式)
4、创建www用户和组,以及其使用的目录:
三、安装Nginx 0.5.31
1、安装Nginx所需的pcre库:
2、安装Nginx
3、创建Nginx日志目录
5、启动Nginx
用户访问http://www.zyan.cc,将其负载均衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。
用户访问http://blog.zyan.cc,将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。
以下为配置文件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
{
use epoll;
worker_connections 51200;
}
http
{
include conf/mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
upstream www.zyan.cc {
server 192.168.1.2:80;
server 192.168.1.3:80;
server 192.168.1.4:80;
server 192.168.1.5:80;
}
upstream blog.zyan.cc {
server 192.168.1.7:8080;
server 192.168.1.7:8081;
server 192.168.1.7:8082;
}
server
{
listen 80;
server_name www.zyan.cc;
location / {
proxy_pass http://www.zyan.cc;
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 www_s135_com '$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 www_s135_com;
}
server
{
listen 80;
server_name blog.zyan.cc;
location / {
proxy_pass http://blog.zyan.cc;
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 blog_s135_com '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data1/logs/blog.log blog_s135_com;
}
}
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
{
use epoll;
worker_connections 51200;
}
http
{
include conf/mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
upstream www.zyan.cc {
server 192.168.1.2:80;
server 192.168.1.3:80;
server 192.168.1.4:80;
server 192.168.1.5:80;
}
upstream blog.zyan.cc {
server 192.168.1.7:8080;
server 192.168.1.7:8081;
server 192.168.1.7:8082;
}
server
{
listen 80;
server_name www.zyan.cc;
location / {
proxy_pass http://www.zyan.cc;
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 www_s135_com '$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 www_s135_com;
}
server
{
listen 80;
server_name blog.zyan.cc;
location / {
proxy_pass http://blog.zyan.cc;
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 blog_s135_com '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /data1/logs/blog.log blog_s135_com;
}
}
附:Nginx 的安装方法可参照《Nginx 0.5.31 + PHP 5.2.4(FastCGI)搭建可承受3万以上并发连接数,胜过Apache 10倍的Web服务器》文章的以下段落(仅做负载均衡,无需支持PHP的安装方法):
二、安装PHP 5.2.4(FastCGI模式)
4、创建www用户和组,以及其使用的目录:
三、安装Nginx 0.5.31
1、安装Nginx所需的pcre库:
2、安装Nginx
3、创建Nginx日志目录
5、启动Nginx
客户端直接访问web服务器时,可以用HTTP_CLIENT_IP、REMOTE_ADDR 这几个变量看到客户端的IP
经过squid或者ngrnx之后,还能看到客户端的IP吗? 是不是要用HTTP_X_FORWARDED_FOR
经过squid或者ngrnx之后,看到客户端的IP,请用HTTP_X_FORWARDED_FOR
1、如果均衡的域名中有泛域名,或有几百个域名的话可以配置吗?
2、ngnix在做均衡的时候是否已经包含了cache功能?
3、ngnix---squid----apache取的的HTTP_X_FORWARDED_FOR是squid服务器的ip地址,如果想取真实客户端地址可以做到吗?
server_name .s135.com; 即可支持***.s135.com泛域名
2、nginx负载均衡只做反向代理,有简单的缓冲,但不像Squid那样将cache存在本机。
3、我已经在nginx.conf配置文件中增加:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
编译squid时加上--enable-follow-x-forwarded-for
然后在squid.conf中输入一行:
follow_x_forwarded_for allow all
后端的Apache取日志(httpd.conf):
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %h %T" combined
取到的就是用户真实IP
做负载均衡时,好像无法检测节点健康状态?
全开是不是会引起安全问题?
tclwp on www.linuxforum.net
能不能基于IP做负载均衡
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
请问这三个是什么意思啊?
server1与server2都安装web.
为了省下一台主机.在server1上安装nginx, 做反向代理, 轮循到server1, server2的web上实现负载均衡.
请问这样做与单独使用一台server3做负载均衡器的区别是不是非常大?
谢谢
例如:a、b、c三台机器,我在a上面如同上面配置的,为什么访问总是在b、c来回换,为什么a上也有网站却不被访问到呢?如果我也想访问a服务器上的网站需要如何处理?
可以做一组
upstream blog.s135.com {
server 192.168.1.7:8080;
server 192.168.1.7:8081;
server 192.168.1.7:8082;
}
负载均衡么?
我查阅了一些资料,好像php-fpm同时只能打开一个端口,如果想实现可行么?
引用mime.types文件的路劲前面应该不用加conf/,指定的类型文件应该自动会到conf目录中去找