启动

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相关推荐

  1. 十分钟学习自然语言处理概述

    十分钟学习自然语言处理概述 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文章全部看了一遍做个整理,也可以称之为概述.关于这些问 ...

  2. vue-cli十分钟学习入门笔记――开袋即食

    vue-cli十分钟学习之从一无所知到糊里糊涂 文章目录 vue-cli十分钟学习之从一无所知到糊里糊涂 1.为啥要学习Vue? 2.NodeJs安装及其npm介绍 3.脚手架vue-cli安装 4. ...

  3. pandas 按字符串肚脐眼 读取数据_十分钟学习pandas! pandas常用操作总结!

    学习Python, 当然少不了pandas,pandas是python数据科学中的必备工具,熟练使用pandas是从sql boy/girl 跨越到一名优秀的数据分析师傅的必备技能. 这篇pandas ...

  4. 十分钟学习python_Python学习笔记一:十分钟入门

    [转]为什么要自己敲呢?--学习的过程. 简介: Python是一种动态解释型的编程语言.Python可以再Windows,UNIX,MAC等多种ca 特点: 1. python使用C语言开发,但是p ...

  5. 十分钟学习python_10分钟带你入门Cython

    1. Cython是什么? Cython是一个编程语言,它通过类似Python的语法来编写C扩展并可以被Python调用.既具备了Python快速开发的特点,又可以让代码运行起来像C一样快,同时还可以 ...

  6. 十分钟学习nfs服务器

    NFS服务器简介 NFS的使用 权限参数 简易实验配置一: 要求:客户端借用nfs服务器可以同步服务端的文件 步骤:服务端配置(/var/lib/nfs日志存放目录) 创建文件:(主配置文件有可能存在 ...

  7. 每天学习十分钟1之心路历程

    1.工作到现在也有半年多了,很少静下心来思考思考想点东西,中午休息时间看了"职业发展"的一点视频,颇有感触,很认同其中的几个观点: ①.平时求生存,周末求发展.这个也不需要什么解释 ...

  8. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门

    原标题:Python零基础从零开始学习Python十分钟快速入门 学习Python的,都知道Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python是一种动态解释型的 ...

  9. 十年建站老司机带你十分钟搭建网站

    十年建站老司机带你十分钟搭建网站 本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 ...

最新文章

  1. pringboot 单元测试 空指针_单元测试中的 FIRST 原则
  2. 智能车竞赛技术报告 | 基础四轮组 - 哈尔滨工程大学 - 济海追风5队
  3. redis基础之有序集合应用
  4. OSSIM系统用户审计
  5. 深入浅出剖析 OpenCV 视觉处理
  6. python动态柱状图_Python+matplotlib绘制动态更新的柱状图
  7. Libvirt虚拟机的Qos与Cgroup
  8. php 农历日历,php下实现农历日历的代码_php实例
  9. linux下Apache默认安装路径
  10. ActiveMQ 持久化
  11. 2019JAVA中ajax不高亮_2019-01-18 ajax请求时,token死活放不大header中
  12. linux启动tongweb命令,TongWeb安装配置--Linux
  13. 大富翁论坛-富翁笔记-Delphi数据库处理(转载)
  14. 公文写作神器 v2.8.1.20 去更新去广告版
  15. SAP License:ERP系统实施价格是多少?
  16. 狐狸找兔子 ← C语言实现
  17. 时间日期插件引用使用方法
  18. 【问题记录】运行python+selenium程序报错,NoSuchWindowException: Browsing context has been discarded
  19. 爬虫之js加密破解抓取网易云音乐评论生成词云
  20. linux win10启动不了怎么办,win10不能启动怎么办?win10无法正常启动的解决方法

热门文章

  1. Linux安装最新Redis
  2. python2.7除法_Python中除法使用的注意事项
  3. wav文件头修复_标记管理音频文件工具:Yate for Mac
  4. 成都计算机安全学会怎么样,成都计算机专科大学
  5. 在同一网段内运行同一命令_怎么又是你?男子一天内2次酒驾被查,没想到碰上了同一个交警...
  6. vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解
  7. 查看ocx控件方法_Appium自动化测试入门教程No.8——定位控件
  8. html5掉落效果,HTML5 菜单掉落动效
  9. linux imq原理图,编译IMQ模块
  10. matlab 地埋管温度场,地埋管换热器周围土壤冻结温度场的模拟研究