第二十二课预习任务LNMP3.docx

12.17 Nginx负载均衡

12.18ssl原理

12.19 生产ssl密钥对

12.20Nginx配置ssl

12.21php-fpmpool

12.22 php-fpm慢执行日志

12.23 open_basedir

12.24 php-fpm进程管理

 

12.17 Nginx负载均衡

借助一个工具upstream

1,先安装一个dig命令

yum install -y bind-utils

然后dig baidu.com,获取到对应的baidu.com的ip

 

2,增加upstream

 

upstream baidu   //名称随意

{

    ip_hash;

    server 123.125.115.110:80;

    server 220.181.57.216: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;  

 

    }

}

正常访问的适合访问的是默认网页

[root@localhost vhost]# curl -x127.0.0.1:80 www.baidu.com

This is the default site

Reload之后则是源码了

注意只能代理http,不能代理https,最新版本才能支持

 

 

12.18ssl原理

访问一些网站有些重要的数据,但是有可能被其他人抓到,如果是用的https,则是加密的

 

 

12.19 生产ssl密钥对

1,cd /usr/local/nginx/conf进入conf目录,
安装 [root@localhost conf]# yum install -y which openssl

2,生成私钥密钥

[root@localhost conf]# openssl genrsa -des3 -out tmp.key 2048

 

3,转换tmp.key私钥并取消密码,生成一个新的文件zhaosy.key私钥,取消密码

[root@localhost conf]# openssl rsa -in tmp.key -out zhaosy.key

这时候可以删除tmp.key

rm -f tmp.key

4,生产公钥文件

openssl req -new -key zhaosy.key -out zhao.csr

生成公钥

[root@localhost conf]#  openssl x509 -req -days 365 -in zhao.csr -signkey zhaosy.key -out zhaogy.crt

证书日期365天

这里就有对应的私钥和公钥文件了,crt是公钥,key是私钥

 

12.20Nginx配置ssl

 

1,创建ssl.conf文件,添加内容

vim /usr/local/nginx/conf/vhost/ssl.conf

server

{

    listen 443;

    server_name zhao.com;

    index index.html index.php;

    root /data/wwwroot/zhao.com;

    ssl on;

    ssl_certificate zhaogy.crt;

    ssl_certificate_key zhaosy.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

}

[root@localhost conf]# mkdir /data/wwwroot/zhao.com

 

2,进入 cd /usr/local/src/nginx-1.8.0,编译源码包

[root@localhost nginx-1.8.0]#  ./configure --prefix=/usr/local/nginx --with-http_ssl_module

编译完make和make install

[root@localhost nginx-1.8.0]# /usr/local/nginx/sbin/nginx –V  //查看

[root@localhost nginx-1.8.0]# /usr/local/nginx/sbin/nginx -t

[root@localhost nginx-1.8.0]# /etc/init.d/nginx restart   //重启nginx服务

Restarting nginx (via systemctl):                          [  确定  ]

Https的端口默认是443

3,进入[root@localhost nginx-1.8.0]# cd /data/wwwroot/zhao.com

创建测试文件

[root@localhost zhao.com]# vim index.html

在host文件中,另起一行,添加本地ip 跟指定的域名

vim /etc/hosts

这里用curl是有400报错的

[root@localhost zhao.com]# curl -x127.0.0.1:443 https://zhao.com

curl: (56) Received HTTP code 400 from proxy after CONNECT

c:\windows\system32\drivers\etc 更改hosts的文件192.168.211.128 zhao.com

如果不行,可以iptables -F清除一下

 

12.21php-fpmpool

这里主要是看php-fpm的一些配置文件,如果所有的网站用一个池子,比如某个配置导致了内存耗完了,会影响到所有的站点,所以让不同的站点用不同的pool.

1,添加pool

这里我们只有定义一个pool

增加pool

[zhao.com]

listen = /tmp/zhao.sock

#listen = 127.0.0.1:9000

listen.mode = 666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

[root@localhost etc]# /usr/local/php-fpm/sbin/php-fpm -t

[root@localhost etc]# /etc/init.d/php-fpm reload

测试:[root@localhost etc]# ps aux |grep php-fpm

多了很多zhao.com

2,这时候就需要用上它,进入目录

[root@localhost vhost]# cd /usr/local/nginx/conf/vhost/

使用aaa. com.conf

 

location ~ \.php$

         {       

         include fastcgi_params;

         fastcgi_pass unix:/tmp/zhao.sock;

         fastcgi_index index.php;

         fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name;

         }

                  

         access_log /tmp/test.com.log zhao;

 

3,多个pool情况下,每一个pool对应一个相关配置文件,先查看php-fpm.conf配置文件

[root@localhost vhost]# cat /usr/local/php-fpm/etc/php-fpm.conf

4,编辑 php-fpm.conf主配置文件

添加这行就可以www和zhao.com配置设定成各自独立的文件

[root@localhost vhost]# cp /usr/local/php-fpm/etc/php-fpm.conf /usr/local/php-fpm/etc/php-fpm.conf.1 //拷贝一个先

然后删除pool

这里可以用DD100

创建一个mkdir /usr/local/php-fpm/etc/php-fpm.d,用来保存.conf文件

进入php-fpm.d

然后创建pool

[root@localhost php-fpm.d]# vim zhao.com.conf

查看配置是否有错误

[root@localhost php-fpm.d]#  /usr/local/php-fpm/sbin/php-fpm -t

[root@localhost php-fpm.d]# /etc/init.d/php-fpm reload

在查看,是可以读取到的

[root@localhost php-fpm.d]# ps aux |grep php-fpm

 

12.22 php-fpm慢执行日志

非常有用

1, 编辑.../www.conf文件,添加内容

[root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

request_slowlog_timeout = 1 //超过一秒钟记录日志

slowlog = /usr/local/php-fpm/var/log/www-slow.log    //日志记录地方

 

2,查看语法错误,reload等

[root@localhost php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t

[root@localhost php-fpm.d]# /etc/init.d/php-fpm reload

 

[root@localhost php-fpm.d]# ls /usr/local/php-fpm/var/log/www-slow.log

/usr/local/php-fpm/var/log/www-slow.log

可以看到已经生成了日志

3,创建一个慢执行脚本

 

[root@localhost php-fpm.d]# vim /data/wwwroot/test.com/sleep.php

[root@localhost php-fpm.d]# cat !$

cat /data/wwwroot/test.com/sleep.php

<?php

echo "test slow log";

sleep(2);

echo "done";

?>

执行测试一下

[root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I

 

查看日志

cat /usr/local/php-fpm/var/log/www-slow.log

 

代表的是sleep的第三行慢,这个是慢执行文件的用处

 

 

12.23 open_basedir

1, 编辑www.conf文件

[root@localhost php-fpm.d]# ls

www.conf  zhao.com.conf

[root@localhost php-fpm.d]# vim www.conf,增加行

php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

 

2, 编辑php-ini配置文件,添加行错误日志配置

 

 

;error_log = /usr/local/php-fpm/var/log/php_errors.log

 

vim www.conf

手动创建一个错误日志文件,并且更改777权限

[root@localhost php-fpm.d]# ls /usr/local/php-fpm/var/log/

php-fpm.log  www-slow.log

[root@localhost php-fpm.d]# touch /usr/local/php-fpm/var/log/php_errors.log

[root@localhost php-fpm.d]# chmod 777 /usr/local/php-fpm/var/log/php_errors.log

 

因为之前故意改错了,这里错误日志404

cat /usr/local/php-fpm/var/log/php_errors.log 可以在这个目录下查看日志

 

12.24 php-fpm进程管理

pm = dynamic //动态进程管理,也可以是static

pm.max_children = 50 //最大子进程数,ps aux可以查看

pm.start_servers = 20 //启动服务时会启动的进程数

pm.min_spare_servers = 5 //定义在空闲时段,子进程数的最少数量,如果达到这个数值时,php-fpm服务会自动派生新的子进程。

pm.max_spare_servers = 35 //定义在空闲时段,子进程数的最大值,如果高于这个数值就开始清理空闲的子进程。

pm.max_requests = 500 //定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。

配置文件的注释注意是用;而不是用#号

用static 那么一下子就是生成对应的start数量,空闲进程会慢慢的去销

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值