`

Nginx基于IP和端口的负载均衡

阅读更多

www.greatwqs.com 和 blog.greatwqs.com 域名均指向 Nginx 所在的服务器IP。

用户访问http://www.greatwqs.com,将其负载均衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。

用户访问http://blog.greatwqs.com,将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。

一、以下为配置文件nginx.conf:

user nginx nginx;

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

events 
{
    use epoll;
    
    worker_connections 51200;
}

http 
{
    include  conf/mime.types;
    default_type application/octet-stream;
    
    keepalive_timeout 120;
    
    tcp_nodelay on;
    
    # 1.配置以IP为负载
    upstream www.greatwqs.com {
        server 192.168.1.2:80;
        server 192.168.1.3:80;
        server 192.168.1.4:80;
        server 192.168.1.5:80;
    }
    
    # 2.配置以端口为负载
    upstream blog.greatwqs.com {
        server 192.168.1.7:8080;
        server 192.168.1.7:8081;
        server 192.168.1.7:8082;
    }
    
    # 1.配置以IP为负载的配置
    server
    {
        listen 80;
        server_name www.greatwqs.com;
        
        location / {
            proxy_pass http://www.greatwqs.com;
            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_greatwqs_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_greatwqs_com;
    }
    
    # 2.配置以端口为负载的配置
    server
    {
        listen 80;
        server_name blog.greatwqs.com;
        
        location / {
            proxy_pass http://blog.greatwqs.com;
            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_greatwqs_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_greatwqs_com;
    }
}

 二、安装前奏

1、创建www用户和组,以及其使用的目录:

三、安装Nginx 0.5.31
1、安装Nginx所需的pcre库:
2、安装Nginx
3、创建Nginx日志目录
5、启动Nginx


附问题释疑:

1、如果均衡的域名中有泛域名,或有几百个域名的话可以配置吗?
server_name .greatwqs.com; 即可支持***.greatwqs.com泛域名
2、ngnix在做均衡的时候是否已经包含了cache功能?
nginx负载均衡只做反向代理,有简单的缓冲,但不像Squid那样将cache存在本机。
3、ngnix---squid----apache取的的HTTP_X_FORWARDED_FOR是squid服务器的ip地址,如果想取真实客户端地址可以做到吗?
在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

分享到:
评论

相关推荐

    Nginx负载均衡特点

    Nginx的特点是: ... 2、Nginx对网络的依赖比较小; 3、Nginx安装和配置比较简单,测试起来比较方便; 4、也可以承担高的负载压力且稳定,一般能支撑超过1万... 另外默认的只有Round-robin和IP-hash两种负载均衡算法。

    Nginx+Tomcat负载均衡

    最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把...

    nginx的负载均衡和反向代理 demo.zip

    nginx的负载均衡和反向代理的demo,springboot版本,访问ip即可在页面展示服务器的ip和端口。

    Nginx搭建负载均衡集群的实现

     nginx的负载均衡用于upstream模板定义的后端服务器列表中选取一台服务器接收用户的请求。一个基本的upstream模块如下: upstream [服务器组名称]{  server [IP地址]:[端口号];  server [IP地址]:[端口号];  .....

    linux版nginx和依赖包

    2.负载均衡 1.将所有资源在每个web服务器安装配置一遍,例如服务器a,服务器b 2.安装好nginx环境及其依赖之后,配置nginx/conf/nginx.conf文件 upstream 集群名称{ server 服务器a的ip:端口 weight=20; #weight...

    Nginx反向代理及负载均衡如何实现(基于linux)

    在我们的java项目中的体现就是,通过80端口访问,Nginx接收到,然后进行转发给tomcat服务器,再将服务器的结果给返回。 这里需要修改nginx.conf文件。 upstream backend { #代理的IP weight权重大的,接收的访问量...

    ngineureka:ngineureka,一个监控spring boot注册中心(eureka),并将服务映射到nginx负载均衡的工具

    当我们用spring cloud部署一套微服务集群后,想要把集群中的服务以rest api的形式给用户使用,显然,我们不可能把所有的application用到的ip和端口暴露给用户。这时候,我们就可以用ngineureka来帮助我们把服务将...

    linux下nginx负载均衡搭建的方法步骤

    四层负载均衡:根据请求报文中的目标地址和端口进行调度 七层负载均衡:根据请求报文的内容进行调度,这种调度属于「代理」的方式 根据软硬件划分: 硬件负载均衡: ◦F5 的 BIG-IP Citrix 的 NetScaler

    Nginx + consul + upsync 完成动态负载均衡的方法详解

    在浏览器缓存中查找是否有对应的ip和端口,如果有直接访问对应ip和端口 浏览器缓存中没有则在本地host文件中查找是否有对应的~~ 本地host文件中没有则去DSN服务器上查找  外网映射 顾名思义,就是将本地的ip地址...

    Linux 按照部署 Nginx 服务器 及相关依赖 - Nginx 配置讲解

    1. 服务端口和服务器块:配置Nginx监听的端口和定义服务器块。服务器块可以包含多个指令,用于配置虚拟主机、域名解析等。 2. HTTP协议配置:在HTTP块中配置Nginx的行为,如请求头大小、客户端请求超时时间、代理...

    如何使用nginx充当mysql的负载均衡器

    说明:nginx版本要求是1.9以上 ,编译nginx的时候需要加上 –with-stream ...1.因为mysql默认使用了3306端口所以配置nginx tcp反向代理mysql的时候注意端口不要与mysql监听的端口一样比如我使用的是3307 2

    nlb负载均衡架设教程

    nlb负载均衡架设教程图解在Server 2008上搭建域控制器 打开服务器管理,如下图所示: 1. 2 选择【角色】然后点击右侧新建角色,在“添加角色向导”页面点击【服务器角色】,如下图所示: 2. 3 勾选“Active ...

    Linux 系统 Nginx 按照部署文档

    以上简单描述提供了部署Nginx的基本步骤,但根据具体情况可能需要进一步配置Nginx,如设置虚拟主机、SSL证书、反向代理、负载均衡等。确保根据实际需求和安全要求进行适当的配置和调整。同时,为保障系统安全,建议...

    k8s部署ingress-nginx脚本,ingress-nginx v1.2.0版本deploy.yaml

    kubernetes 中的 pod 中容器想要对外部用户...端口的方式访问,而在 ingress 当中可以使用七层协议(HTTP/HTTPS)的服务方式来实现负载均衡以及 k8s 集群内部服务和客户端之间的通信(既可以通过域名和主机名的方式)

    nginx和lvs各自的优劣以及适合的使用环境

    在最开始呢,咱们先说一下什么叫负载均衡,负载均衡呢,就是将一批请求,根据请求的内容,分发到... 四层负载均衡,指的是IP+端口的负载均衡;  七层负载均衡,指的是基于WEB请求,URL等应用层信息的负载均衡。  

    Nginx配置

    Nginx 负载均衡详解 热备 轮询 加权轮询 ip_hash 页面刷新404 nginx 转发 转发到某一个端口 转发到某多个端口 http转换https Nginx配置文件结构 打开conf文件夹的nginx.conf文件,Nginx服务器的基础配置,默认的配置...

    LVS负载均衡器总结

    套接字=IP+端口Nginx(7层):更适合http,smtp,pop3,imap的负载均衡Haproxy(7层):根据用户请求的内容来调度。它支持4层和7层的负载均衡,其更适合http,tcp(如:mysql,smtp)LB集群主要以提高并发能力为根本LB的...

    nginx-1.8.0下载安装使用

    Nginx是一个高性能的 HTTP和反向代理服务器。 ... 2、配置虚拟机。一个域名可以被多个ip绑定。可以根据域名的不同吧请求转发给运行在不同端口的服务器。...3、反向代理,负载均衡。把请求转发给不同的服务器。

    基于SpringBoot框架搭建的物联网数据采集系统服务器端(源码)

    * 1.框架SpringBoot+MyBatis,相比于SSM版的项目大大减少了xml... * 提供查看IP和端口API方便进行nginx反向代理和负载均衡的部署和测试 * 分布式session共享避免了集群环境下用户登录信息失效的问题 * 5.测试页面优化

    基于Python+Django+Redis+Mysql的B2C生鲜商城源码+项目说明+项目截图.zip

    模拟了大型电商企业高访问量的负载均衡 本地运行项目 建议创建一个虚拟环境来运行 python manage.py startapp dailyfresh 然后一键安装依赖包 pip install -r requirements.txt 在setting.py中配置自己的本地的...

Global site tag (gtag.js) - Google Analytics