使用Nginx作为反向代理服务器,上游服务器用Apache服务器,访问地址:http://localhost:8088
Nginx的配置文件:
其中,upstream name {} 和server {} 可以配置多个,用于反向代理多个上游服务器。
---在http的上下文中添加以下指令:
upstream local {
---每一个请求按访问ip的hash结果分配。
---这样每一个用户固定访问一个后端服务器,配置了ip_hash后,下面的weight配置就不发挥作用。
ip_hash;
server 127.0.0.1:8088 weight = 2;
server 66.33.00.28:8088 weight = 3;
----按后端服务器的响应时间来分配请求。响应时间短的优先分配。
fair;
}
server {
listen 8089;
server_name localhost;
default_type text/plain;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://local;
}
}
有时候为了隐藏upstream的真实URL,可以把server中的location配置成这样:
location /aganliang {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://local/myportal;
}
---经过代理之后:
原有的URL:
http://localhost:8088/myportal/test_particles.html
通过代理可以访问:
http://localhost:8089/aganliang/test_particles.html
测试:通过访问Nginx,跳转到Apache :