`

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配置 +负载均衡+https协议

    通过生成SSL证书、重新编译Nginx以添加SSL模块,以及编辑Nginx配置文件实现HTTPS支持和负载均衡功能。此外,还提供了Nginx的基本操作命令,包括启动、停止和重启等。这些步骤和配置为构建安全可靠的Web服务器提供了...

    nginx负载均衡实现

    Nginx作为一种高性能的负载均衡工具,在实现负载均衡的同时,还提供了丰富的功能和灵活的配置选项,使得它成为众多企业和开发者的首选方案。通过合理的负载均衡策略和技术组合,可以有效地应对各种复杂的网络环境...

    nginx+eureka实现负载均衡实例

    本实例将讲解如何结合 `nginx` 和 `Eureka` 实现微服务的负载均衡,从而提高网站的访问性能。 1. **Nginx 负载均衡** - **工作原理**:Nginx 可以根据预设的策略(如轮询、最少连接、IP哈希等)将请求分发到多个...

    Nginx+Tomcat高性能负载均衡集群搭建(模板).zip

    在构建高性能Web服务时,Nginx...综上所述,通过Nginx+Tomcat的架构,我们可以创建一个高效的负载均衡集群,提供高可用性、可扩展性和性能优化。在实际操作中,还需要根据具体业务需求和环境调整配置,以达到最佳效果。

    Nginx与Tomcat配置实现负载均衡.zip

    本教程将详细介绍如何通过Nginx配置实现对Tomcat服务器集群的负载均衡,从而提高系统的稳定性和处理能力。 首先,我们需要理解Nginx和Tomcat各自的角色。Nginx是一款高性能的反向代理服务器和HTTP缓存,它以其高效...

    高可用之Keepalived+Nginx实现高可用Web负载均衡

    Keepsalived 和 Nginx 是实现高可用 Web 负载均衡的关键技术。Keepalived 是一种高性能的服务器高可用或热备解决方案,可以防止服务器单点故障的发生,而 Nginx 是一个流行的 Web 服务器软件。通过 Keepalived 和 ...

    Nginx+tomcat配置集群负载均衡实例

    本实例将详细阐述如何通过Nginx配置集群负载均衡,以实现动静分离,提升系统性能和稳定性。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器,以其高性能、稳定性以及低内存占用著称。它能处理静态文件请求,...

    Nginx入门到精通搭建高可用集群负载均衡

    - **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...

    Nginx+tomcat配置集群负载均衡

    Nginx是一款高性能的反向代理服务器,常用于处理静态资源和进行负载均衡;Tomcat则是广泛使用的Java应用服务器,主要用于运行Servlet和JSP应用。下面我们将详细探讨这个主题。 首先,**Nginx的反向代理功能**是整个...

    Nginx负载均衡配置

    负载均衡是Nginx的一个重要功能,它可以将客户端的请求分发到多个服务器上,从而提高系统的处理能力和扩展性。下面详细解释Nginx负载均衡的配置方法以及负载均衡策略。 首先,要配置Nginx与Tomcat实现负载均衡,...

    nginx负载均衡 nginx+tomcat tomcat实现负责均衡

    ### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...

    nginx应用部署和负载均衡应用

    通过以上配置和设置,Nginx不仅可以作为高效的静态文件服务器,还能作为反向代理和负载均衡器,有效管理和优化网站的性能和可靠性。了解并熟练掌握Nginx的配置和应用,对于运维人员来说至关重要。在实际工作中,还...

    利用Nginx实现网站负载均衡_刘振宇

    当然,Nginx还支持其他负载均衡算法,比如加权轮询、最少连接、IP哈希等,可以通过配置来实现。 Nginx还支持负载均衡的健康检查,能够检测后端服务器的健康状态,并从负载均衡中剔除不健康的服务器。这种机制有助于...

    Nginx+Tomcat9搭建负载均衡实例,解压即可运行

    Nginx支持多种负载均衡策略,如轮询(round-robin)、最少连接(least connections)、IP哈希(ip_hash)等。可以根据实际需求选择合适的策略,通过修改`upstream`块中的配置实现。 8. **测试和监控** 完成配置后...

    Spring Boot+Nginx实现负载均衡1

    在本文中,我们将介绍如何使用 Spring Boot 和 Nginx 实现负载均衡。负载均衡是指将 Incoming requests 分配到多个服务器,以提高系统的可扩展性和可靠性。使用 Spring Boot 和 Nginx,可以轻松地实现负载均衡,提高...

    nginx+keepalived实现高可用负载均衡方案.pdf

    Nginx以其高并发和低内存消耗的特点而闻名,非常适合用于负载均衡和Web服务。 2. Keepalived简介: Keepalived是一种管理虚拟服务器(如IP地址、TCP端口)资源的工具。它利用VRRP(Virtual Router Redundancy ...

    使用Nginx轻松实现开源负载均衡

    Nginx不仅可以做四层负载均衡(基于TCP/UDP协议),还可以实现七层负载均衡(基于HTTP/HTTPS协议),根据请求的内容进行智能分发。通过配置不同的负载均衡策略,如轮询、权重分配、最少连接数等,可以灵活地调度后端...

    利用nginx实现动静分离和负载均衡 by 李乐,杨.doc

    【Nginx 介绍】 Nginx 是一款高性能的 HTTP 和...总结起来,利用 Nginx 实现动静分离和负载均衡,可以有效地优化网站性能,提高服务的可用性和可靠性。Nginx 的高性能和易用性使其成为现代 Web 架构中的重要组成部分。

    Nginx、LVS及HAProxy负载均衡软件的优缺点详解.docx

    Nginx、LVS 及 HAProxy 是目前使用最广泛的三种负载均衡软件,每种软件都有其特点和优缺点。 Nginx 的优点: 1. 工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略。 2. 对网络稳定性的依赖非常小,理论...

Global site tag (gtag.js) - Google Analytics