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的反向代理和负载均衡的更多相关文章

  1. Nginx入门篇(六)之反向代理和负载均衡

    一.Nginx负载均衡集群 介绍 负载均衡(Load Balance)集群提供了一种行之有效的办法,来扩展网络设备和服务器负载.带宽和吞吐量,同时加强了网络数据处理能力,提供了网络的灵活性和可用性. ...

  2. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...

  3. Nginx安装、配置虚拟主机、反向代理、负载均衡

    1.   nginx安装 下载nginx: 官方网站: http://nginx.org/ 使用的版本是1.8.0版本. Nginx提供的源码. 1.1. 要求的安装环境 1.需要安装gcc的环境.y ...

  4. 【nginx网站性能优化篇(3)】反向代理实现负载均衡

    注意,本篇文章为负载均衡的理论篇,后续找个机会推出实战篇.理论篇主要讲述如何配置负载均衡,配置负载均衡不难.难的是真正的实战,比如如何做到多服务器之间的数据共享(session,file等),多cac ...

  5. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

  6. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  7. JAVAEE——宜立方商城03:商品类目选择、Nginx端口或域名区分虚拟机、Nginx反向代理、负载均衡、keepalived实现高可用

    1. 学习计划 第三天: 1.商品类目选择(EasyUI的tree实现) 2.图片上传 a) 图片服务器FastDFS(Nainx部分) 2. 商品类目选择 2.1. 原型 2.2. 功能分析 展示商 ...

  8. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  9. Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  10. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

随机推荐

  1. uva live 7639 Extreme XOR Sum (暴力+二项式)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  2. PHP 几种常用框架的区别

    工作中使用的是TP框架,在工作之余接触了一下Yii框架和Laravel框架,为了更好的了解几种框架,此处总结一下几种框架各自的优势及缺点. 一.CI框架 CI框架是一个简单快速的PHP MVC轻量级框 ...

  3. 测开之路九十三:css之文字样式和段落对齐

    引用css 字体族 字体类型和尺寸 em:字体按倍数缩放 font-weight:调整文字的粗细 段落对齐:text-align 左对齐:left 右对齐:right 居中对齐:center 两边对齐 ...

  4. lua 转换16进制字符串为10进制数值

    lua 转换16进制字符串为10进制数值 > print(tonumber()) 利用tonumber函数,“16”表示“03FFACB”为16进制数.

  5. 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 ...

  6. Java ——修饰符 包 Bean

    本节重点思维导图 Bean 是一个类,类中所有的属性都是私有化的,所有的属性都有相应的getter/setter方法 对于boolean类型的成员变量来说,它的getter方法是:isXxxx() 详 ...

  7. 防止XSRF 解决方案

    1.首先在表单提交页面生成校验使用的Token public ActionResult Index() { //Token验证需要使用的token string token = System.Guid ...

  8. Java -Tips

    1. /* xxxx */表示多行注释,双斜杠开始表示单行注释.多行注释的快捷键: 先选中多行代码,然后按下ctrl+/就可以把选中的多行代码给注释掉.

  9. Linux下修改时间及date使用

    [root@host1 ~]# date #显示时间 2017年 06月 01日 星期四 17:02:59 CST 以指定格式显示时间: [root@host1 ~]# date +%Y%m%d 20 ...

  10. Codeforces 1163D Mysterious Code(AC自动机+DP)

    用 AC自动机 来做有点想不到,捞一手就是学一手. 设 dp[ i ][ j ] 表示字符串 c 中的第 i 位到字典树上节点 j 的最大值是多少, word[ j ] 表示在节点 j 下对答案修改的 ...