一、 简单介绍
- 说明
1)功能说明
- ngx_http_proxy_module
反向代理模块把用户请求抛给服务器节点/池 - ngx_http_upstream_module
负载均衡模块,实现网站的负载均衡和节点健康检查
2)官方链接
负载均衡
反向代理
- 语法
1)负载均衡
Syntax: upstream name { ... }
Context: http
eg:
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
说明:upstream模块就类似定一个一个地址池或者说定一个web服务器组
2)反向代理
Syntax: proxy_pass URL;
Context: location, if in location, limit_excepteg:
location / {
proxy_pass http://upload;
}
说明:proxy_pass主要用于进行抛送用户访问请求给upstream模块中的相应节点服务器
二、 安装配置
yum安装
yum install nginx
#需要阿里的epel源
egrep -v “#|^$” /etc/nginx/nginx.conf.default >/etc/nginx/nginx.conf修改配置文件
cat /etc/nginx/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream noah { server 10.0.0.7:80; server 10.0.0.8:80; server 10.0.0.9:80; } server { listen 80; server_name localhost; root html; index index.html index.htm; location / { proxy_pass http://noah; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } }}
upstream noah和location /部分,为增加的反向代理和负载均衡模块
proxy_set_header选项的解释在最后面启动nginx
nginx -t
/etc/init.d/nginx start
三、 检测利用浏览器进行测试
进行hosts解析
浏览以下网址http://www.etiantian.org/oldboy.html
利用ctrl+F5强制刷新测试
检查是否进行负载调度利用curl命令进行测试
[root@xxx ~]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web01 www.etiantian.org
[root@xxx ~]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web02 www.etiantian.org
[root@xxx ~]# curl -H host:www.etiantian.org 10.0.0.5/oldboy.html
web03 www.etiantian.org
四、 proxy_set_header解释
proxy_set_header Host $host的作用:
将用户的请求头一起直接交给服务器,而不省略;在做负载均衡时要记得加此参数,否则可能可能导致以下问题:
- 别名网址循环解析
- 有多个server标签但却只能解析第一个标签的网址
- http版本会由1.1变为1.0,apache会不提供访问
proxy_set_header X-Forwarded-For $remote_addr的作用:
将用户的ip传递给web服务器,以便web服务器日志记录用户IP而非代理IP,需要日志格式中定义了http_x_forwarded_for选项
文档更新时间: 2023-08-10 06:27 作者:月影鹏鹏