nginx实现反向代理和简单的负载均衡
nginx实现反向代理和简单的负载均衡
反向代理
反向代理其实通俗来说就是用户去访问一个url,但是这个url其实并不是真正的服务地址,这个url只是代理服务器,在代理服务器接收到用户的请求之后,就会向不同的服务进行分发请求。
以百度为例,我们在访问百度时都是直接访问https://www.baidu.com/,如果说这个就是真实服务器的地址,显然是不可能的,在你访问这个地址之后就可以分发不同的服务器去处理这个请求,这个过程就是反向代理,即用户不知道自己访问的是代理服务器,以为自己访问就是目标服务器,代理服务器代理的就是目标服务器。
nginx实现反向代理
修改位于nginx目录下的conf中的nginx.conf
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
upstream xiaow{
#负载均衡配置 weight越大 访问频率越高
server 127.0.0.1:8001 weight=1;
server 127.0.0.1:8002 weight=2;
}
server {
listen 8082;
server_name localhost;
#访问 / 就会跳转到html目录下的index.html
location / {
root html;
index index.html;
#进行配置反向代理
proxy_pass http://xiaow;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
反向代理的关键点就在于location的配置,http:// 之后的应与upstream后相一致。
upstream是来配置负载均衡的,weight就是来配置分发请求频率的大小,weight越大,频率越高。
可以自己写一个返回port的接口试一下,nginx可以用于转发网关请求,即upstream配置的服务都是网关服务。
注意一定要重新加载配置,否则不会生效,在nginx的目录下输入nginx -s reload即可,如果一次没有成功,可以多执行一次