2506-nginx的配置-域名分发与负载均衡(只有配置无原理)
nginx的安装
Windows7:官网下载,是一个压缩包,运行解压缩后的exe文件即启动了nginx,需注意的是,Windows(win7)的80端口默认被微软的IIS占用,需改成别的端口,例如8010(如何改?参考下面的配置文件讲解)
解压后的目录:
1.conf目录:存放配置文件的目录,包含主配置文件nginx.conf,是我们经常修改的配置文件。
2.contrib目录:存放开源爱好者共享的代码。
3.docs目录:存放文档资料。
4.html目录:默认存放了Nginx的错误页面和欢迎页面。
5.logs目录:默认存放了访问日志、错误日志和Nginx主进程pid文件。
6.temp目录:临时目录,用于存放Nginx运行时产生的临时文件。
7.nginx.exe:可执行程序,常用于Nginx服务的启动、停止等管理工作。
Linux:
分为两种方式,1是yum源安装,2是源码通过make编译
(网上教程很多,略过)
静态代理
代理的是静态的html文件等
# server是一个代理的信息体
server {
# 监听的端口
listen 8010;
# 监听的域名 访问localhost:8010即可访问到主页
server_name localhost;
# html文件路径
location / {
# html是文件夹名
root html;
index index.html index.htm;
}
}
# 例子 代理一个域名(域名分发)
server {
listen 80;
server_name aaa.abc.com;
location / {
root html/aaa;
index index.html index.htm;
}
}
反向代理
通过proxy_pass将请求发给子服务处理
# 将对abc.com的请求 都代理到localhost:9999去处理,localhost可换为其他服务器的ip,9999也可换为其他端口
server {
listen 80;
server_name abc.com;
location / {
proxy_pass http://localhost:9999;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
}
负载均衡
nginx的负载均衡主要是通过模块upstream来实现的,
upstream abc.com{
server localhost:9999 weight=10;
server localhost:9998 weight=10;
server localhost:9997 weight=10;
}
server {
listen 80;
server_name abc.com;
location / {
proxy_pass http://abc.com;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
}
扩展
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.159.10 weight=10;
server 192.168.159.11 weight=10;
}
- ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream resinserver{
ip_hash;
server 192.168.159.10:8080;
server 192.168.159.11:8080;
}
- fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}
- url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
upstream resinserver{
#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://resinserver/;
每个设备的状态设置为:
1. down 表示单前的server暂时不参与负载
2. weight 默认为1.weight越大,负载的权重就越大。
3. max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4. fail_timeout:max_fails次失败后,暂停的时间。
5. backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
参考文献:
ngnix域名分发
(其实就是配置多个server)
1. Nginx实现根据域名http、https分发配置示例 https://blog.csdn.net/baidu_35776955/article/details/78059471
2. nginx监听相同端口通过域名分发到不同的服务器 https://blog.csdn.net/gozs_cs_dn/article/details/79067749
3. nginx 反向代理和负载均衡 https://www.cnblogs.com/microtiger/p/7623858.html
4. 配置详解超详细 http://www.cnblogs.com/crazylqy/p/7149774.html
系列教程 有原理 https://www.cnblogs.com/crazylqy/category/883974.html
5. 简单安装与配置 https://blog.csdn.net/e421083458/article/details/30086413
tips:
- 引入子配置,避免配置污染
- include功能:在http里加上 类似include qqq/www/*.conf
- 如果代理的服务是重型服务,http请求头非常大,例如在Cookie中写入很多信息,nginx会爆400错误,因为请求头超长,默认1k,需额外设置
- nginx常用命令
- 重新加载配置 nginx -s reload
- Windows修改hosts文件 “windows”→“System32”→“drivers”→“etc” 修改hosts文件
2506-nginx的配置-域名分发与负载均衡(只有配置无原理)的更多相关文章
- nginx负载均衡及配置
nginx负载均衡及配置 1 负载均衡概述 负载均衡由来是因为当一台服务器单位时间内的访问量很大时,此时服务器的压力也会很大,当超过自身承受能力时,服务器就会崩溃.为避免让服务器崩溃,用户拥有更好的体 ...
- linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过 ...
- nginx 负载均衡简单配置
配置要求: 三台服务器 127.0.0.1 主负载(把访问请求分给主机池) 127.0.0.2 主机2 127.0.0.3 主机3 第一步: 配置127.0.0.1 ...
- Nginx(http协议代理 搭建虚拟主机 服务的反向代理 在反向代理中配置集群的负载均衡)
Nginx 简介 Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务.Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文:Рамблер)开 ...
- [笔记]nginx配置反向代理和负载均衡
1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- nginx负载均衡简单配置
nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132 web服务器192.168.232.133 web服务器192.168.232.134 ...
- linux下nginx【反向代理】配置【负载均衡】配置
nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...
- Nginx/Httpd负载均衡tomcat配置
在前一篇博客中我们聊了下用Nginx和httpd对后端tomcat服务做反代相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13334180.html: ...
随机推荐
- Element中使用el-select选中后不显示值
<el-select v-model="form.data" placeholder="选择参数" @change="changeThis&qu ...
- HCNP Routing&Switching之MSTP
前文我们了解了RSTP保护相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16255918.html:今天我们来了解下MSTP相关话题: MSTP技术背 ...
- 论文解读《Deep Attention-guided Graph Clustering with Dual Self-supervision》
论文信息 论文标题:Deep Attention-guided Graph Clustering with Dual Self-supervision论文作者:Zhihao Peng, Hui Liu ...
- 基于SqlSugar的开发框架循序渐进介绍(2)-- 基于中间表的查询处理
在前面介绍的SqlSugar的相关查询处理操作中,我们主要以单表的方式生成相关的实体类,并在查询的时候,对单表的字段进行条件的对比处理,从而返回对应的数据记录.本篇随笔介绍在一些外键或者中间表的处理中 ...
- python之部分内置函数与迭代器与异常处理
目录 常见内置函数(部分) 可迭代对象 迭代器对象 for循环内部原理 异常处理 异常信息的组成部分 异常的分类 异常处理实操 异常处理的其他操作 for循环本质 迭代取值与索引取值的区别 常见内置函 ...
- 儿童节,和 AI 一起通关 “超级马里奥兄弟”
摘要:六一儿童节,快来训练一款自己的游戏 AI,用代码让马里奥从大反派酷霸王的魔掌里救回桃花公主. 本文分享自华为云社区<儿童节,和 AI 一起通关 "超级马里奥兄弟"> ...
- PostMan 快快走开, ApiFox 来了, ApiFox 强大的Api调用工具
简介 为什么要用ApiFox呢, 一般现在程序员开发测试, 一般都是PostMan, PostWoman等Api调用工具, 我之前也是一直在用, 但是今天我发现了一款相比于Postman更加好用的工具 ...
- 解惑unittest框架中导入HTMLTestRunner模块后正常运行却无法生成HTML报告问题
1.HTMLTestRunner介绍 HTMLTestRunner是一个第三方的unittest HTML报告库,用于python单元测试框架的TestRunner.它是生成一个HTML报告,以一目了 ...
- ShardingSphere-proxy-5.0.0部署之分表实现(一)
一.说明 环境准备:JDK8+ mysql 5.x 官网:https://shardingsphere.apache.org/ 下载地址:https://archive.apache.org/ ...
- 我所使用的生产 Java 17 启动参数
JVM 参数升级提示工具:jacoline.dev/inspect JVM 参数词典:chriswhocodes.com Revolut(英国支付巨头)升级 Java 17 实战:https://ww ...