nginx负载均衡前端项目
服务器 | 主机名 | 说明 |
---|---|---|
10.4.237.123 | nodea | 负载主机,负责分发给下面俩服务器 |
10.4.237.124 | nodeb | 分发服务1 |
192.168.18.47 | nodec | 分发服务2 |
一、nginx安装(全部服务器执行)
1.1 安装依赖包
yum install gcc
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum install wget
1.2 下载nginx安装包
[root@node1 quartz]# cd /usr/local/
[root@node1 quartz]# wget https://nginx.org/download/nginx-1.15.3.tar.gz
[root@node1 quartz]# tar -zxvf nginx-1.15.3.tar.gz
1.3 安装nginx
//进入nginx目录
[root@node1 quartz]# cd /usr/local/nginx-1.15.3
//执行命令
[root@node1 quartz]# ./configure
[root@node1 quartz]# make
[root@node1 quartz]# make install
[root@node1 quartz]# /usr/local/nginx/sbin/nginx -s reload
[root@node1 quartz]# ps -ef | grep nginx //查看nginx进程是否启动:
1.4 nginx命令
/usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx
二、nginx配置
首先将前端文件放到三台服务器/usr/local/nginx/html/meeting目录下
2.1 nodea配置
[root@node1 nodea]# vi /usr/local/nginx/conf/nginx.conf
------------------------------------------------------------------------
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#配置nginx反向代理组
upstream meeting_server { #转发配置
#ip_hash解决session问题
#ip_hash;
server 10.4.237.124:80;
server 192.168.18.47:80;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
# /meeting请求拦截,进行负载转发
location ~* /meeting { #拦截配置
root html;
index index.html index.htm;
proxy_pass http://meeting_server;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
------------------------------------------------------------------------
2.2 nodeb、nodec配置
# server{} 里面配置拦截
location ~* /meeting {
root html;
index index.html index.htm;
## try_files $uri/meeting/ /meeting/index.html;
try_files $uri $uri/meeting/ /meeting/index.html =404;
}
2.3 测试
前端访问路径是:http://10.4.237.123/meeting/oa-order
tail -f /usr/local/nginx/logs/access.log 查看三台机器的日志
测试发现每次请求http://10.4.237.123/meeting/oa-order,nodea增加一个日志,然后转发给nodeb或者nodec,对应服务器会增加一条日志,配置成功