十分钟学习nginx
启动
nginx
重启
nginx -s reopen
停止
nginx -s stop
热加载
./nginx -s reload
测试修改配置文件是否正常
nginx -t
默认配置文件位置
/usr/local/nginx/conf/
调整Nginx基本配置
/usr/local/nginx/conf/nginx.conf
自定义的Nginx配置放到哪里
/usr/local/nginx/servers
也可以自定义只要放被include就可以
nginx
安全退出
./nginx -s quit
负载均衡
1.轮询2.权重3.fair4.url_hash 5.ip_hash
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {server 192.168.0.14;server 192.168.0.15;
}
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的
情况。
upstream backserver {server 192.168.0.14 weight=3;server 192.168.0.15 weight=7;
}
权重越高,在被访问的概率越大,如上例,分别是30%,70%。
3、ip_hash
上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么*已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的*。
我们可以采用**ip_hash*指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器*。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决*session的问题*。
upstream backserver {ip_hash;server 192.168.0.14:88;server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {server server1;server server2;fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个(对应的)后端服务器,后端服务器为缓存时比较有效。
upstream backserver {server squid1:3128;server squid2:3128;hash $request_uri;hash_method crc32;
}
在需要使用负载均衡的server中增加
proxy_pass http://backserver/;
upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示单前的server暂时不参与负载) server 127.0.0.1:8080 weight=2; (weight 默认为1.weight越大,负载的权重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup机器down或者忙的时候,请求backup机器)
}
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间
配置实例:
#user nobody;worker_processes 4;
events {
# 最大并发数
worker_connections 1024;
}
http{# 待选服务器列表upstream myproject{# ip_hash指令,将同一用户引入同一服务器。ip_hash;server 125.219.42.4 fail_timeout=60s;server 172.31.2.183;}server{# 监听端口listen 80;# 根目录下location / {# 选择哪个服务器列表proxy_pass http://myproject;}}
}
配置文件结构
性能在全局
虚拟主机
网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。
例如将两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。
server {listen 80 default_server;server_name _;return 444; # 过滤其他域名的请求,返回444状态码
}
server {listen 80;server_name www.aaa.com; # www.aaa.com域名location / {proxy_pass http://localhost:8080; # 对应端口号8080}
}
server {listen 80;server_name www.bbb.com; # www.bbb.com域名location / {proxy_pass http://localhost:8081; # 对应端口号8081}
}
在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。
虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,有兴趣的同学可以研究一下HTTP协议。
另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。
十分钟学习nginx相关推荐
- 十分钟学习自然语言处理概述
十分钟学习自然语言处理概述 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问 ...
- vue-cli十分钟学习入门笔记――开袋即食
vue-cli十分钟学习之从一无所知到糊里糊涂 文章目录 vue-cli十分钟学习之从一无所知到糊里糊涂 1.为啥要学习Vue? 2.NodeJs安装及其npm介绍 3.脚手架vue-cli安装 4. ...
- pandas 按字符串肚脐眼 读取数据_十分钟学习pandas! pandas常用操作总结!
学习Python, 当然少不了pandas,pandas是python数据科学中的必备工具,熟练使用pandas是从sql boy/girl 跨越到一名优秀的数据分析师傅的必备技能. 这篇pandas ...
- 十分钟学习python_Python学习笔记一:十分钟入门
[转]为什么要自己敲呢?--学习的过程. 简介: Python是一种动态解释型的编程语言.Python可以再Windows,UNIX,MAC等多种ca 特点: 1. python使用C语言开发,但是p ...
- 十分钟学习python_10分钟带你入门Cython
1. Cython是什么? Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以 ...
- 十分钟学习nfs服务器
NFS服务器简介 NFS的使用 权限参数 简易实验配置一: 要求:客户端借用nfs服务器可以同步服务端的文件 步骤:服务端配置(/var/lib/nfs日志存放目录) 创建文件:(主配置文件有可能存在 ...
- 每天学习十分钟1之心路历程
1.工作到现在也有半年多了,很少静下心来思考思考想点东西,中午休息时间看了"职业发展"的一点视频,颇有感触,很认同其中的几个观点: ①.平时求生存,周末求发展.这个也不需要什么解释 ...
- python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门
原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...
- 十年建站老司机带你十分钟搭建网站
十年建站老司机带你十分钟搭建网站 本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 ...
最新文章
- pringboot 单元测试 空指针_单元测试中的 FIRST 原则
- 智能车竞赛技术报告 | 基础四轮组 - 哈尔滨工程大学 - 济海追风5队
- redis基础之有序集合应用
- OSSIM系统用户审计
- 深入浅出剖析 OpenCV 视觉处理
- python动态柱状图_Python+matplotlib绘制动态更新的柱状图
- Libvirt虚拟机的Qos与Cgroup
- php 农历日历,php下实现农历日历的代码_php实例
- linux下Apache默认安装路径
- ActiveMQ 持久化
- 2019JAVA中ajax不高亮_2019-01-18 ajax请求时,token死活放不大header中
- linux启动tongweb命令,TongWeb安装配置--Linux
- 大富翁论坛-富翁笔记-Delphi数据库处理(转载)
- 公文写作神器 v2.8.1.20 去更新去广告版
- SAP License:ERP系统实施价格是多少?
- 狐狸找兔子 ← C语言实现
- 时间日期插件引用使用方法
- 【问题记录】运行python+selenium程序报错,NoSuchWindowException: Browsing context has been discarded
- 爬虫之js加密破解抓取网易云音乐评论生成词云
- linux win10启动不了怎么办,win10不能启动怎么办?win10无法正常启动的解决方法
热门文章
- Linux安装最新Redis
- python2.7除法_Python中除法使用的注意事项
- wav文件头修复_标记管理音频文件工具:Yate for Mac
- 成都计算机安全学会怎么样,成都计算机专科大学
- 在同一网段内运行同一命令_怎么又是你?男子一天内2次酒驾被查,没想到碰上了同一个交警...
- vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解
- 查看ocx控件方法_Appium自动化测试入门教程No.8——定位控件
- html5掉落效果,HTML5 菜单掉落动效
- linux imq原理图,编译IMQ模块
- matlab 地埋管温度场,地埋管换热器周围土壤冻结温度场的模拟研究