12.17 Nginx负载均衡
12.18 ssl原理
12.19 生成ssl密钥对
12.20 Nginx配置ssl
12.21 php-fpm的pool
12.22 php-fpm慢执行日志
12.23 open_basedir
12.24 php-fpm进程管理
负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池, 后面简称backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器。
[root@linux-02 ~]# cd /usr/local/nginx/conf/vhost/
[root@linux-02 vhost]# vim load.conf
upstream baidu //定义一个模块名
{
ip_hash; //负载均衡的一种算法
server 183.232.231.174:80; //如果是80端口,可以省略
server 183.232.231.172:80;
}
server
{
listen 80;
server_name www.baidu.com;
location /
{
proxy_pass http://baidu;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
dig 命令可以查看到域名的详细解析。
[root@linux-02 test.com]# yum install -y bind-utils
已加载插件:fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 6.9 kB 00:00:00
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 3.4 kB 00:00:00
mariadb-main | 2.9 kB 00:00:00
mariadb-maxscale | 2.4 kB 00:00:00
mariadb-tools | 2.9 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/5): mariadb-maxscale/7/x86_64/primary_db | 6.7 kB 00:00:02
(2/5): mariadb-main/7/x86_64/primary_db | 54 kB 00:00:03
(3/5): updates/7/x86_64/primary_db | 5.0 MB 00:00:04
(4/5): epel/x86_64/updateinfo | 1.0 MB 00:00:07
(5/5): epel/x86_64/primary_db | 6.7 MB 00:00:10
正在解决依赖关系
--> 正在检查事务
---> 软件包 bind-utils.x86_64.32.9.9.4-73.el7_6 将被 安装
--> 正在处理依赖关系 bind-libs = 32:9.9.4-73.el7_6,它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 liblwres.so.90()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 libisccfg.so.90()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 libisccc.so.90()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 libisc.so.95()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 libdns.so.100()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在处理依赖关系 libbind9.so.90()(64bit),它被软件包 32:bind-utils-9.9.4-73.el7_6.x86_64 需要
--> 正在检查事务
---> 软件包 bind-libs.x86_64.32.9.9.4-73.el7_6 将被 安装
--> 正在处理依赖关系 bind-license = 32:9.9.4-73.el7_6,它被软件包 32:bind-libs-9.9.4-73.el7_6.x86_64 需要
--> 正在检查事务
---> 软件包 bind-license.noarch.32.9.9.4-72.el7 将被 升级
--> 正在处理依赖关系 bind-license = 32:9.9.4-72.el7,它被软件包 32:bind-libs-lite-9.9.4-72.el7.x86_64 需要
---> 软件包 bind-license.noarch.32.9.9.4-73.el7_6 将被 更新
--> 正在检查事务
---> 软件包 bind-libs-lite.x86_64.32.9.9.4-72.el7 将被 升级
---> 软件包 bind-libs-lite.x86_64.32.9.9.4-73.el7_6 将被 更新
--> 解决依赖关系完成
依赖关系解决
=====================================================================================================================================
Package 架构 版本 源 大小
=====================================================================================================================================
正在安装:
bind-utils x86_64 32:9.9.4-73.el7_6 updates 206 k
为依赖而安装:
bind-libs x86_64 32:9.9.4-73.el7_6 updates 1.0 M
为依赖而更新:
bind-libs-lite x86_64 32:9.9.4-73.el7_6 updates 741 k
bind-license noarch 32:9.9.4-73.el7_6 updates 87 k
事务概要
=====================================================================================================================================
安装 1 软件包 (+1 依赖软件包)
升级 ( 2 依赖软件包)
总下载量:2.0 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): bind-libs-lite-9.9.4-73.el7_6.x86_64.rpm | 741 kB 00:00:00
(2/4): bind-libs-9.9.4-73.el7_6.x86_64.rpm | 1.0 MB 00:00:00
(3/4): bind-license-9.9.4-73.el7_6.noarch.rpm | 87 kB 00:00:00
(4/4): bind-utils-9.9.4-73.el7_6.x86_64.rpm | 206 kB 00:00:00
-------------------------------------------------------------------------------------------------------------------------------------
总计 2.7 MB/s | 2.0 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : 32:bind-license-9.9.4-73.el7_6.noarch 1/6
正在安装 : 32:bind-libs-9.9.4-73.el7_6.x86_64 2/6
正在安装 : 32:bind-utils-9.9.4-73.el7_6.x86_64 3/6
正在更新 : 32:bind-libs-lite-9.9.4-73.el7_6.x86_64 4/6
清理 : 32:bind-libs-lite-9.9.4-72.el7.x86_64 5/6
清理 : 32:bind-license-9.9.4-72.el7.noarch 6/6
验证中 : 32:bind-license-9.9.4-73.el7_6.noarch 1/6
验证中 : 32:bind-libs-9.9.4-73.el7_6.x86_64 2/6
验证中 : 32:bind-libs-lite-9.9.4-73.el7_6.x86_64 3/6
验证中 : 32:bind-utils-9.9.4-73.el7_6.x86_64 4/6
验证中 : 32:bind-license-9.9.4-72.el7.noarch 5/6
验证中 : 32:bind-libs-lite-9.9.4-72.el7.x86_64 6/6
已安装:
bind-utils.x86_64 32:9.9.4-73.el7_6
作为依赖被安装:
bind-libs.x86_64 32:9.9.4-73.el7_6
作为依赖被升级:
bind-libs-lite.x86_64 32:9.9.4-73.el7_6 bind-license.noarch 32:9.9.4-73.el7_6
完毕!
[root@linux-02 test.com]#
[root@linux-02 vhost]# dig www.baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61498
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 600 IN A 183.232.231.174
www.baidu.com. 600 IN A 183.232.231.172
;; Query time: 8 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 六 5月 18 03:09:17 CST 2019
;; MSG SIZE rcvd: 74
[root@linux-02 vhost]# curl -x127.0.0.1:80 www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc>