负载均衡,说白了,所有请求发给A服务器,然后它转发到其它服务器中实现负载均衡
反向代理的好处
解决了网站服务器对外可见的问题,提高了网站服务器的安全性;
节约了有限的IP地址资源,后端服务器均可使用私有IP地址与代理服务器进行通信;
加速了网站的访问速度,减轻了真实web服务器的负荷。
反向代理的工作流程
用户通过域名发出访问请求,该域名被解析为反向代理服务器的IP地址;
反向代理服务器接收用户的请求;
反向代理服务器在本地缓存查找是否存在当前用户所请求的内容,找到则直接把内容返回给用户;
如果本地没有用户请求的内容,反向代理服务器会以自己的身份去后端服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是可以被缓存的,则会将该内容缓存在代理服务器的本地缓存中。
负载均衡的配置流程:
1.在etc/nginx/cond.f路径下创建.conf类型的文件,在文件里面添加如下代码
upstream backend{
#ip_hash;
server 127.0.0.1:9701 weight=1;
server 127.0.0.1:9702 weight=2;
}
server {
listen 8005;//就是通过外网访问的端口
server_name 127.0.0.1;
access_log /var/log/nginx/nginx_demo_access.log;
error_log /var/log/nginx/nginx_demo_error.log;
charset utf-8;
client_max_body_size 75M;
#root /home/linux/Desktop/wll_MySite;
location / {
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_buffering off;
proxy_pass http://backend;
}
}
配置好以后将写好的django项目上传到服务器中,上传到服务器不同的文件夹下,开始为项目配置uwsgi的配置文件(每一个路径都要配置),代码如下:
[uwsgi]
# Django-related settings
socket = 127.0.0.1:9801
# 项目绝对路径
#一般放在www下面,
chdir = /home/linux/Desktop/word
# Django的wsgi文件相对路径
#项目重命名后,要注意文件的相对路径并没有改变
wsgi-file = mysite/wsgi.py
# process-related settings
# master
master = True
# 最大进程数
#根据情况设置
processes = 4
# 线程数
threads = 2
#设置此参数,有一个主进程
master=True
#守护进程的方式运行,log日志存在此log文件里
#每个项目对应一个log文件
deamonize=/var/log/uwsgi/djangoProject.log
#主进程id写入文件里
pidfile= /var/log/nginx/uwsgi.pid
# ... with appropriate permissions - may be needed
# chmod-socket = 664
#退出时,清理环境
vacuum = True
reload-mercy = 10
max-requests = 5000
limit-as = 512
buffer-size = 30000
在进入.conf文件
server {
listen 9701;
server_name 127.0.0.1
access_log /var/log/nginx/myblog_access.log;
error_log /var/log/nginx/myblog_error.log;
charset utf-8;
client_max_body_size 75M;
root /home/linux/Desktop/1/Hello;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9801;
uwsgi_read_timeout 30;
}
location /static/ {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/linux/Desktop/1/Hello/static/;
}
}
上面9701和9708进行绑定
2)重启nginx:
sudo service nginx restart
打开三个终端进行运行项目(和**.ini文件同一目录下执行):
uwsgi -ini 配置文件的路径(hello/1.ini)
9801 9802 9803 nginx和uwsgi交互的端口号
9701 9702 9703 三个服务器端口
8005 浏览器登录端口