nginx主配置文件学习,以及nginx的反向代理和负载均衡
1.nginx.conf主配置文件学习
worker_processes : 表示nginx的进程数,根据CPU的核数来定义,起到优化的作用。通过cat /proc/cpuinfo来查看核数
events {
worker_connections ; #连接数
}
#http区域块,定义nginx的核心web功能
http {
include(关键字) mime.types(可修改的值);
default_type application/octet-stream; #定义日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#开启访问日志功能的参数
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout ;
#保持长连接
keepalive_timeout ;
#支持图片 gif等等压缩,减少网络带宽
gzip on; #这个server标签 控制着nginx的虚拟主机(web站点)
server {
# 定义nginx的入口端口是80端口
listen ;
# 填写域名,没有域名就写ip地址
server_name www.s15rihan.com;
# 定义编码
charset utf-;
# location定义网页的访问url
#就代表 用户的请求 是 192.168.13.79/
location / {
#root参数定义网页根目录
root html;
#定义网页的首页文件,的名字的
index index.html index.htm;
}
#定义错误页面,客户端的错误,就会返回40x系列错误码
error_page /.html;
#500系列错误代表后端代码出错
error_page /50x.html;
}
定义两个虚拟机 vim nginx.conf
worker_processes ; nginx工作进程数,根据cpu的核数定义,起到优化作用
events {
worker_connections ; #连接数
}
#http区域块,定义nginx的核心web功能
http {
include(关键字) mime.types(可修改的值);
default_type application/octet-stream; #定义日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#开启访问日志功能的参数
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout ;
#保持长连接
keepalive_timeout ;
#支持图片 gif等等压缩,减少网络带宽
gzip on; #这个server标签 控制着nginx的虚拟主机(web站点)
server {
# 定义nginx的入口端口是80端口
listen ;
# 填写域名,没有域名就写ip地址
server_name www.s15rihan.com;
# 定义编码
charset utf-;
# location定义网页的访问url
#就代表 用户的请求 是 192.168.13.79/
location / {
#root参数定义网页根目录
root html;
#定义网页的首页文件,的名字的
index index.html index.htm;
}
#定义错误页面,客户端的错误,就会返回40x系列错误码
error_page /.html;
#500系列错误代表后端代码出错
error_page /50x.html;
}
#在另一个server{}的外面,写入新的虚拟主机2
server{
listen ;
server_name www.s15oumei.com;
location / {
root /opt/myserver/oumei; #定义虚拟主机的网页根目录
index index.html;
}
}
}
准备两个虚拟主机的网页根目录内容
[root@localhost myserver]# tree /opt/myserver/
/opt/myserver/
├── oumei
│ └── index.html 写入自己的内容
└── rihan
└── index.html 写入自己的内容
修改windows本地的测试域名 C:\Windows\System32\drivers\etc\hosts文件写入如下内容
192.168.13.79 www.s15rihan.com 192.168.13.79 www.s15oumei.com 因为我们没有www.s15oumei.com 也没有 www.s15rihan.com ,因此要在本地搞一个测试域名,
然后在浏览器测试访问 两个不同的 web站点
www.s15rihan.com
www.s15oumei.com
nginx的访问日志功能
.开启nginx.conf中的日志参数 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#开启访问日志功能的参数
access_log logs/access.log main; .检查access.log的日志信息 tail -f access.log nginx的拒绝访问功能
.在nginx.conf中,添加参数
在server{}虚拟主机标签中,找到location 然后添加参数 #当访问 192.168.13.79/ 的时候
location / {
#拒绝参数是 deny
#deny 写你想拒绝的IP地址
#deny还支持拒绝一整个网站
deny 192.168.13.33;
root /opt/myserver/rihan;
index index.html;
}
nginx的错误页面优化
.修改nginx.conf 中的配置参数
这个s1540x.html存在 虚拟主机定义的网页根目录下
error_page /s1540x.html;
nginx反向代理:nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)
实验的环境准备
准备2个服务器,都安装好nginx软件
nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点)
nginx2 192.168.13.24 作为反向代理服务器 (黄牛)
用户 通过浏览器去访问 黄牛 (代理)
浏览器 访问 192.168.13.24 > 192.168.13.79

nginx负载均衡
1.什么是集群?
为了解决服务器的压力,让一堆服务器做一件事情

为什么要用集群?





什么是负载均衡?

Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,
实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾

Nginx要实现负载均衡需要用到proxy_pass代理模块配置
Nginx负载均衡与Nginx代理不同地方在于
Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池
Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。
实验准备:
1.准备三台计算机
nginx1 192.168.13.121 作为nginx负载均衡器 只要我访问这个负载均衡器,查看页面的结果,到底是来自于 nginx2 192.168.13.24 web服务,提供一个页面 nginx3 192.168.13.79 web服务,提供一个页面
2.配置两个nginx的web页面
192.168.13.24 准备一个 index.html 写入 你好,我是192.168.13.24机器
192.168.13.79 准备一个 index.html 写入 老了老弟,我是192.168.13.
3.然后启动两个nginx web 服务
4.准备一个nginx负载均衡器 192.168.13.121机器上,修改nginx.conf
upstream s15webserver {
ip_hash;
server 192.168.13.79 ;
server 192.168.13.24 ;
}
定义一个负载均衡池,负载均衡的算法有
调度算法 概述
轮询 按时间顺序逐一分配到不同的后端服务器(默认)
weight 加权轮询,weight值越大,分配到的访问几率越高
ip_hash 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器
url_hash 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器
least_conn 最少链接数,那个机器链接数少就分发
.轮询(不做配置,默认轮询)
.weight权重(优先级)
.ip_hash配置,根据客户端ip哈希分配,不能和weight一起用
5.然后在虚拟主机中添加 反向代理配置,将用户的请求,直接转发给 负载均衡池中的服务器
server {
listen ;
#当我的请求来自于 192.168..121时,走这>个虚拟主机
server_name 192.168.13.121;
#charset koi8-r;
#access_log logs/host.access.log main;
#核心配置,就在这,一条proxy_psss参数即可
location / {
proxy_pass http://s15webserver;
#root html;
#index index.html index.htm;
}
}
6.启动负载均衡器的 nginx服务


7.5.在客户端windows中测试访问,负载均衡器 192.168.13.121 ,查看请求分发的结果
nginx主配置文件学习,以及nginx的反向代理和负载均衡的更多相关文章
- Nginx入门篇(六)之反向代理和负载均衡
一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...
- Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...
- Nginx安装、配置虚拟主机、反向代理、负载均衡
1. nginx安装 下载nginx: 官方网站: http://nginx.org/ 使用的版本是1.8.0版本. Nginx提供的源码. 1.1. 要求的安装环境 1.需要安装gcc的环境.y ...
- 【nginx网站性能优化篇(3)】反向代理实现负载均衡
注意,本篇文章为负载均衡的理论篇,后续找个机会推出实战篇.理论篇主要讲述如何配置负载均衡,配置负载均衡不难.难的是真正的实战,比如如何做到多服务器之间的数据共享(session,file等),多cac ...
- [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- JAVAEE——宜立方商城03:商品类目选择、Nginx端口或域名区分虚拟机、Nginx反向代理、负载均衡、keepalived实现高可用
1. 学习计划 第三天: 1.商品类目选择(EasyUI的tree实现) 2.图片上传 a) 图片服务器FastDFS(Nainx部分) 2. 商品类目选择 2.1. 原型 2.2. 功能分析 展示商 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解
大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解
大纲 一.前言 二.环境准备 三.安装与配置Nginx (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡 (负载均衡算法:nginx负载算法 up ...
随机推荐
- uva live 7639 Extreme XOR Sum (暴力+二项式)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- PHP 几种常用框架的区别
工作中使用的是TP框架,在工作之余接触了一下Yii框架和Laravel框架,为了更好的了解几种框架,此处总结一下几种框架各自的优势及缺点. 一.CI框架 CI框架是一个简单快速的PHP MVC轻量级框 ...
- 测开之路九十三:css之文字样式和段落对齐
引用css 字体族 字体类型和尺寸 em:字体按倍数缩放 font-weight:调整文字的粗细 段落对齐:text-align 左对齐:left 右对齐:right 居中对齐:center 两边对齐 ...
- lua 转换16进制字符串为10进制数值
lua 转换16进制字符串为10进制数值 > print(tonumber()) 利用tonumber函数,“16”表示“03FFACB”为16进制数.
- exceptions: django2.2/ mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
在centos部署python应用后访问页面,显示如下异常信息 报错环境 python=3.6,django=2.2……django.core.exceptions.ImproperlyConfigu ...
- Java ——修饰符 包 Bean
本节重点思维导图 Bean 是一个类,类中所有的属性都是私有化的,所有的属性都有相应的getter/setter方法 对于boolean类型的成员变量来说,它的getter方法是:isXxxx() 详 ...
- 防止XSRF 解决方案
1.首先在表单提交页面生成校验使用的Token public ActionResult Index() { //Token验证需要使用的token string token = System.Guid ...
- Java -Tips
1. /* xxxx */表示多行注释,双斜杠开始表示单行注释.多行注释的快捷键: 先选中多行代码,然后按下ctrl+/就可以把选中的多行代码给注释掉.
- Linux下修改时间及date使用
[root@host1 ~]# date #显示时间 2017年 06月 01日 星期四 17:02:59 CST 以指定格式显示时间: [root@host1 ~]# date +%Y%m%d 20 ...
- Codeforces 1163D Mysterious Code(AC自动机+DP)
用 AC自动机 来做有点想不到,捞一手就是学一手. 设 dp[ i ][ j ] 表示字符串 c 中的第 i 位到字典树上节点 j 的最大值是多少, word[ j ] 表示在节点 j 下对答案修改的 ...