nginx负载均衡-基于端口的负载均衡(一)

注意:

(1) 做负载均衡技术至少需要三台服务器:一台独立的负载均衡器,两台web服务器做集群

一、nginx分别代理后端web1 和 web2的三台虚拟主机

1、web1(nginx-10.0.0.7)配置基于端口的虚拟主机

复制代码
[root@Oldboy extra]# cat www.conf 
server {
        listen        10.0.0.7:80;
#     server_name  www.etiantian.org;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
        access_log  logs/www_access.log  main;
}
[root@Oldboy extra]# cat bbs.conf 
server {
        listen       10.0.0.7:8080;
#     server_name  bbs.etiantian.org;
        location / {
            root   html/bbs;
            index  index.php  index.html index.htm;
        }
        access_log  logs/bbs_access.log  main;
}
[root@Oldboy extra]# cat blog.conf           动态页面
server {
        listen       10.0.0.7:8081;
#      server_name  blog.etiantian.org;
        location / {
        root     html/blog;
        index    index.php;
}

        location ~ .*\.(php|php5)?$ {
        root html/blog;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
        }
        access_log  logs/blog_access.log  main;
}

2、web2(apache-10.0.0.8)配置基于端口的虚拟主机

复制代码
NameVirtualHost 10.0.0.8:80
Listen 8080                                           手动写上监听端口,80在主配置文件
Listen 8081
<VirtualHost *:80>
    ServerAdmin oldboy@oldboyedu.com
    DocumentRoot "/application/apache2.2.31/htdocs/www"
    ServerAlias etiantian.org
    ErrorLog "/app/logs/www-error_log"
    CustomLog "/app/logs/www-access_log" common
</VirtualHost>

<VirtualHost 10.0.0.8:8080>
    ServerAdmin oldboy@oldboyedu.com
    DocumentRoot "/application/apache2.2.31/htdocs/bbs"
    ErrorLog "/app/logs/bbs-error_log"
    CustomLog "/app/logs/bbs-access_log" common
</VirtualHost>

<VirtualHost 10.0.0.8:8081>                                                            动态页面
    ServerAdmin oldboy@oldboyedu.com
    DocumentRoot "/application/apache2.2.31/htdocs/blog"
    ErrorLog "/app/logs/blog-error_log"
    CustomLog "/app/logs/blog-access_log" common
</VirtualHost>

3、负载均衡器(LB-nginx-10.0.0.6)配置反向代理

复制代码
[root@Oldboy conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

 upstream www_pool {                                                   www静态地址池
    server 10.0.0.7:80  weight=1;                                      权重越大优先级越高
    server 10.0.0.8:80  weight=1;
}

 upstream bbs_pool {                                                    bbs静态地址池
    server 10.0.0.7:8080  weight=1;
    server 10.0.0.8:8080  weight=1;
}

 upstream blog_pool {                                                  blog动态地址池
    server 10.0.0.7:8081  weight=1;
    server 10.0.0.8:8081  weight=1;
}



server {
        listen       80;
        server_name  www.etiantian.org;
        location / {
            index  index.html index.htm;
            proxy_pass http://www_pool;                                          代理www静态页面
            include proxy.conf;
        }
    }


server {
        listen       80;
        server_name  bbs.etiantian.org;
        location / {
            index  index.html index.htm;
            proxy_pass http://bbs_pool;                                            代理bbs静态页面
            include proxy.conf;
        }
    }

server {
        listen       80;
        server_name  blog.etiantian.org;
        location / {
            index  index.html index.htm;
            proxy_pass http://blog_pool;                                          代理blog动态页面
            include proxy.conf;
        }
    }
}

4、修改web端日志访问ip

复制代码
默认情况下web端日志记录的访问ip是负载均衡器的ip,所以需要修改为真实客户端ip
(1) 负载均衡器(LB)配置
server {
        listen       80;
        server_name  blog.etiantian.org;
        location / {
            index  index.html index.htm;
            proxy_pass http://blog_pool;                                          代理blog动态页面
            proxy_set_header Host  $host;                                        
            proxy_set_header X-Forwarded-For $remote_addr;      负载均衡器开启ip转发,将客户端ip映射到web服务器
        }
    }
    (2) web1端修改(nginx主配置文件)
cat  nginx.conf

log_format  main  '$http_x_forwarded_for  $remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent"';

(3) web2端修改 (apache主配置文件)
LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b"  common
相关推荐
云飞云共享云桌面2 小时前
东莞智能装备工厂数字化实践—研发部门10名SolidWorks设计共享一台云主机流畅设计
服务器·自动化·汽车·负载均衡·制造
techdashen7 小时前
Cloudflare 为何抛弃 NGINX,用 Rust 自研了一个代理
运维·nginx·rust
人生匆匆9 小时前
通过nginx解决跨域问题
运维·nginx
子木HAPPY阳VIP11 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
吹个口哨写代码14 小时前
小程序图片不显示,直接访问显示,头部配置问题
javascript·css·nginx
phltxy14 小时前
微服务多机部署与负载均衡实战:从手写轮询到 Spring Cloud LoadBalancer 落地
spring cloud·微服务·负载均衡
m0_6316533114 小时前
阿里云单机双网终极部署与运维白皮书:Nginx + PM2 + Prisma 踩坑实战
运维·nginx·阿里云·部署
偶尔上线经常挺尸1 天前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
yoyo_zzm1 天前
Laravel9.x新特性全解析
数据库·mysql·nginx
yoyo_zzm1 天前
Laravel8.x新特性全解析
数据库·nginx