Nginx

0. 简介  

 Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数

 nginx  常用的命令 :
   (1)启动命令 :在/usr/local/nginx/sbin 目录下执行 ./nginx
   (2)关闭命令 : 在/usr/local/nginx/sbin 目录下执行 ./nginx -s stop
   (3)重新加载命令 : 在/usr/local/nginx/sbin 目录下执行 ./nginx -s reload

大概介绍一些接下来主要使用的配置文件

位置在:cd /usr/local/nginx/conf/nginx.conf


配置文件中的内容:包含三部分内容


(1 )全局块:配置服务器整体运行的配置指令  

      从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker rocess   数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。
  比如 worker_processes 1;   这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约


(2 )events  块 :影响 Nginx  服务器与用户的网络连接
    比如 worker_connections 1024;  支持的最大连接数为 1024
(3 )http  块  : 这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里
  需要注意的是:http 块也可以包括 http 全局块、server 块。
  ①、http 全局块
    http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
  ②、server 块
    这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
    每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
  1、全局 server 块
    最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。
  2、location 块
    一个 server 块可以配置多个 location 块。这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称
(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行

1.  正向代理和反向代理的区别

https://www.cnblogs.com/Anker/p/6056540.html

 

2.  Nginx 配置反向代理

下面的配置实现的效果就是:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中
nginx 监听端口为 9001,对外暴露的端口
访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081

访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082

location  指令说明,该指令用于匹配 URL。
语法如下:
(1)、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
(2)、~:用于表示 uri 包含正则表达式,并且区分大小写。
(3)、~*:用于表示 uri 包含正则表达式,并且不区分大小写。
(4)、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location
块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

 

 

 

3.  Nginx 配置负载均衡

在http块中先配置负载均衡的服务器有哪些以及策略,起名字放upstream后面,在server块当访问此路径时就会按照配置的策略(不配默认是轮询)代理到配的负载均衡的服务器中

 

 

 

  Nginx 提供了几种分配方式(策略):

(1)轮询,默认的:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除

(2)weight:weight 代表权,重默认为 1,权重越高被分配的客户端越多

(3)ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题

(4)fair (第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。

 

4.  Nginx 配置动静分离

先在/data路径下准备静态资源,用于访问

 

访问 ,就可以看到放在里面的静态资源了。

 

5.  nginx  搭建高可用集群 : nginx  配置主从模式/ nginx  配置双主模式

(1 )需要两台服务器 192.168.17.129  和 192.168.17.131
(2 )在两台服务器安装 nginx
(3 )在两台服务器安装 keepalived

 完成高可用配置(主从配置)
(1 )修改/etc/keepalived/keepalivec.conf  配置文件

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 // VRRP H 虚拟地址
//对外暴露的网址,主从两台主从Nginx都绑定此虚拟地址,当外面访问此虚拟地址,会用下面的检测脚本查看主服务器是不是挂掉了,如果挂掉了就会到从服务器,用户是无感知的。
}
}

 

(2 )在/usr/local/src  添加检测脚本
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

(3 )把两台服务器上 nginx 和 和 keepalived  启动
启动 nginx :./nginx
启动 keepalived :systemctl start keepalived.service

5 、最终测试
(1 )在浏览器地址栏输入  虚拟 ip  地址 192.168.17.50,停到主服务器依然可以访问到~

 

posted @ 2020-06-13 23:11  向日葵呀  阅读(269)  评论(0)    收藏  举报