参考博客:https ://blog.csdn.net/xuanjiewu/article/details/79458266
一:反向代理与正向代理
正向代理:用户通过代理服务器访问目标服务器,(目标服务器不知道真实访问者)
反向代理:用户访问代理服务器,由代理服务器获取目标服务器数据,再由代理服务器返回数据给用户,(用户不知道访问的真实服务器)
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://luckwml.top:80;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
1.配置:
这是我的CONF / nginx.conf配置文件中的服务器(可以配置多个)
2.启动
窗口启动的nginx的的,可以双击nginx.exe
3.访问
在浏览器地址栏输入: http:// localhost:8080 /
看到将会 http://luckwml.top:80 所访问的页面
二:负载均衡
为了避免大量用户同时访问一台机器,采用负载均衡,比如将请求分发在两台机器上。
upstream aa{
server 48.98.52.51:80;
server 48.98.52.52:80;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://aa;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
1.配置
如图所示,和反向代理比较可以很容易发现,多了上游配置,服务器就是需要分发的服务器,
这里假设两台服务器48.98.52.51,48.98.52.52
2.启动(参考反向代理)
3.访问
在浏览器地址栏输入: http:// localhost:8080 /
将会看到48.98.52.51:80或48.98.52.52:80访问的页面,一直访问将会轮询这两台服务器。
===》在使用负载均衡的时候会遇到session丢失情况
当用户第一次访问服务器nginx将请求指向51服务器,并保存session登录信息,
再次访问服务器将请求指向52服务器,这时session不存在,导致登录信息不存在。(session保持)
解决方法:ip_hash可以保证同一个ip访问指向同一台服务器(不改变session存储);
补充:
session保持:session保存在某台服务器,保持不变;
session复制:session值复制在每一台服务器,即每台服务器有相同的session值;
session共享:将session值保存在全局共享的存储介质来达到同样的效果,如数据库,缓存等;
-------------------------------------------------- -------------------------------------------------- -----------------------------------
这是我对nginx的的的的简单了解,如有理解不正确的地方,非常感谢能够指点一下,谢谢!