反向代理、负载均衡
反向代理:
有一群服务器集群,并且服务器集群中的每台服务器内容一样时,我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群。通过第三方服务器知道要访问哪一台服务器提供的内容,此时的代理方式称为反向代理。
负载均衡
在访问服务器集群的时候 ,用户的访问会先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,将该访问请求引入选择的服务器。(nginx会给你分配服务器压力小的去访问)
nginx反向代理与负载均衡的实现
用户访问网站的时候首先会访问nginx服务器,然后nginx服务器在从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器。
反向代理的配置: proxy_pass
项目的开发机地址填写到proxy_pass后
server{
listen 80;
location / {
proxy_pass http://12.12.12.12:123456
}
}
介绍三个指令:
- ip_hash指令:如果第一次访问该服务器后被记录,之后的访问都是该服务器
- server指令
upstream指令及相关变量
// 修改nginx.conf
worker_processes 1;//工作进程数,和cpu核数相同
events {worker_connections 1024;//每个进程允许的最大连接数
}
http { //负载均衡模块upstream firstdemo { //服务器
ip_hash;
server 39.106.145.33;
server 47.93.6.93;
}
server { //实现反向代理
listen 8080; //监听端口
location / { //访问根路径
proxy_pass http://firstdemo;//代理到firstdemo的两个服务器上
}
}
}
一般我们会设置一个server_name,用指定域名的方式去访问
server {
listen 80;
server_name test.weiqiujuan.com ;
auth_basic off;
location / {
proxy_pass http://10.10.10.10:20186;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
}
这样开发,产品,设计均可以通过域名“test.weiqiujuan.com”来访问开发环境,进行各类走查。
nginx常用命令:
- 查看版本号:nginx -v
- 启动nginx: nginx
- 关闭nginx: nginx -s stop,停止nginx服务
- 修改配置之后,重启nginx: nginx -s reload
- 检查配置是否正确: nginx -t(ok或者successful表示成功)
还没有评论,来说两句吧...