2018-07-06 课后笔记

课前预习

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进程管理

 12.17 Nginx负载均衡

  • 在配置负载均衡之前,看一下www.qq.com域名对应的IP,使用dig命令,没有这个命令用yum安装
[root@liuhongwei ~]# yum install -y bind-utils

安装好这个命令后执行dig www.qq.com,可以看到有二个IP,这个二个IP都可以访问到www.baidu.com,验证一下:

67ebd44300f7696f24ca8baa73dc1623dec.jpg

b0b7732a48a75b048d583f32e65f0360471.jpg

可以看到二个IP返回的结果是一样的,它使用的是Web Server软件为squid(一种代理软件)。有二个IP 就可以走负载均衡:

  • 配置过程如下:

首先在vhost目录下创建一个新的load.conf文件,加入如下内容:

b139a12457e1d8c4ef027c1f52e0c136b2d.jpg

 

和简单的代理有所不同,负载均衡多了一个 upstream,在这里定义后端的 Web Server,可以是一个,也可以是多个。其中 ip_hash为负载均衡的算法,它表示根据IP地址把请求分到不同的服务器上.比如用户A的IP为1.1.1.1,用户B的IP为2.222,则A访问的时候会把请求转发到第一个 Web Server上,而B访问的时候会到第二个 Web Server上。这种算法用在把 session存到本机磁盘上的情况,至于什么是session,你访问猿课看课程需要登录,那么你一旦登录,服务器上就会记录你的 session信息,这个 session会保存一段时间。比如,你看了一个10分钟的课程,然后去开会了,过去半小时再打开网站,你依然是登录的状态,这就是因为 session还存在这台服务器上。

在做测试前我们先不加载,直接本机访问看一下效果。它会访问本机的默认虚拟主机。

17c3ef44547289437f22c28bc2c0e19efd1.jpg

测试语法错误,和重新加载,在看一下:

3c1a2660e1f2c1d2b201242c450a95e21ac.jpg

b28e4d795b919256efe0f55639742ba8c6c.jpg

这个时候我们可以看到,访问了一堆源代码,这个就是因为在本机上显示的是源代码形式,本来之前我们本机是不能访问qq.com的,这个时候能访问了,这个就是代理的作用。但是代理是不支持https的,能支持http。

 12.18 ssl原理

fce213e0e0a53a4a7d7fab4f7d3cdc54a7a.jpg

https简单来讲就是一种加密的HTTP协议,如果HTTP通信的数据包在传输过程中被截获,我们可以破译这些数据包里面的信息,这里面不乏一些用户名、密码、手机号等敏感的信息。而如果使用 Https通信,即使数据包被截获,我们也无法破译里面的内容。上图右侧就是HTTPS通信的过程。

12.19 生成ssl密钥对

  • 通过上文的简要分析,我们可以确定服务器上必须有一对公钥和私钥,也就是后文提到的SSL证书。如果是公司的网站对外提供服务,则需要购买被各大浏览器厂商认可的SSL证书。购买ssl证书可以到沃通购SSL证书。目前各大SSL证书服务商已经不再提供免费的SSL证书服务,所以做例子的时候,只能在 Linux机器上生成一对自定义的SSL证书,这个证书只能我们自己使用做测试,不能使用在生产环境中。具体配置过程如下:

首先进入到conf目录下面去:

2aaee005be99d18e0433989f55f09f76df9.jpg

3d9536bbc694e3a38d3827adcd8afec75a3.jpg

openssl命令没有,使用yum install -y openssl安装,这一步是生成key文件(就是私钥),2048为加密字符串长度,然后是输入密码,不能太短否则不成功。

然后下一步是把刚刚生成的key再装换成hongwei.key,目的是清除刚才生成的密码。如果key文件有密码,则必须在nginx加载它的时候输入密码,很不方面,所有要清除密码。

289d725de34144a07ca8e78db3af6a26578.jpg

下一步就是生成ssl证书,需要填写一些内容,可以随意写。

b4cf734bc87fe7c349a3c9d5d2ec85d8f6c.jpg

最后一步是生成CRT证书文件。也就是公钥,这才是最终想要的东西。

46b4e9d57e3bfb56b68ea24d8faf936d56a.jpg

12.20 Nginx配置ssl

有了上面的hongwei.kry和hongwei.crt二个文件就可以配置nginx了。配置过程如下: 

配置之前我们要创建一个目录

e3c15ecf557be1978ee9bfe0ecbd0ba6dbd.jpg

然后测试语法错误,出现了错误,这是因为我们编译nginx时候,没有额外配置支持ssl参数。

99706dd601cdf073d251df9fcdcfc366e1b.jpg

解决上面的错误就要重新编译nginx  加上ssl参数

2fcc88b9a684390340be27c95a7b3189d1a.jpg

cf34693c601b893cbf0475e6961ac4db6c9.jpg

806a86201fd51f6da1e18b1d1b526794e9a.jpg

e93fac0bb76286ab3806d5104554248e939.jpg

编译完成之后,我们再次重新加载,这次没有错误,

74480144e900e94455135027f1e79cb826a.jpg

然后重新启动nginx

6a98958c5f5bd7a1cb3c59b6b85faa03263.jpg

看一下监听端口有没有监听443端口:

c70175530b267fbb24dfe883821d4bd73f1.jpgran

然后我们就创建对应的目录和测试文件:

6f0be6cc296c4906942a7232b1959da302a.jpg

然后测试一下:

82e47c01ca0401f3fec33899fb7fe1b2fa1.jpg

我们使用curl -x是不对的。但是想直接访问的话,写host 把域名ip写到里面去

cd74dbd51fa10948adbf32596264647e0ed.jpg

然后我们直接访问,出现一些信息,表示你的证书不可信任,因为是我们自己颁发的,是不合法的。但实际上是访问成功了。

dbf5470fe97a86785876ea0a2a13c82aca9.jpg

我们也可以使用浏览器访问,把aming.com写到hosts里面去。

e0fb4012f52a0475d82a8d473cfe5aab742.jpg

出现不能访问的情况可以看下是不是有防火墙。

c7f97094ca4c1c2feada093cc201dec21ac.jpg

我们清除一下:

45018ae97f457812d0b632c226e63419dd4.jpg

在返回浏览器:

c7bf458c79a59402c14f9adaf3b75b1ada3.jpg

7108b46196f55942d8d88195b5d0b7560d4.jpg

这个时候就显示不是私密链接,这是因为该证书为我们自己制作的,并没有得到浏览器的认可,如果想继续访问,可以点“高级”,然后点“添加例外”,在弹出的对话框点击“确认安全例外”,然后就可以访问网站内容了。此时,你还可以看到浏览器的地址栏左侧有一个灰色的小锁,并且带有黄色三角形,这意味着该链接不安全。你也可以去访问一下国内最受欢迎的网站(比如htts:/ww.12306cn),同样也会提示不安全,这是因
为该站点的SSL证书是它自己颁发的,因而不能被浏览器承认。

17855fe39ccbdac16b3c0a9d51dfb077155.jpg

 12.21 php-fpm的pool

 

和LAMP不同的是,在LNMP架构中,php-fpm作为独立的一个服务存在。既然是独立服务,那么它必然有自己的配置文件。php-fpm的配置文件为 usr/loca/php- fpm/etc/php-fpmconf,它同样也支持include语句,类似于 nginx. conf里面的 include。

040732daf6d23c682a94137fbc953755064.jpg
Nignx可以配置多个虚拟主机,php-fpm同样也支持配置多个pool,每一个pool可以监听一个端口,也可以监听一个 socket,。把 php-fpm.conf在添加一个池子,内容如下:

第一种配置方法:
[root@liuhongwei etc]# vim !$
vim php-fpm.conf

group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
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

[aming.com]    池子的名字做更改
listen = /tmp/aming.sock     这个地方有做更改
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

~                                                                                                                                    
~                                               

然后看一下有没有语法错误:

0d422021773193e4a560d5b8a0240c45960.jpg 没有错误就做一个重启

14f20ffc7204c348842a66273b0381c3c4e.jpg

然后在ps看一看:

[root@liuhongwei etc]# ps aux|grep php-fpm
root      5725  0.2  0.4 229276  4972 ?        Ss   03:52   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm   5726  0.0  0.4 229216  4712 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5727  0.0  0.4 229216  4712 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5728  0.0  0.4 229216  4712 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5729  0.0  0.4 229216  4712 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5730  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5731  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5732  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5733  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5734  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5735  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5736  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5737  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5738  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5739  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5740  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5741  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5742  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5743  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5744  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5745  0.0  0.4 229216  4720 ?        S    03:52   0:00 php-fpm: pool www
php-fpm   5746  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5747  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5748  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5749  0.0  0.4 229216  4716 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5750  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5751  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5752  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5753  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5754  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5755  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5756  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5757  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5758  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5759  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5760  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5761  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5762  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5763  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5764  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
php-fpm   5765  0.0  0.4 229216  4724 ?        S    03:52   0:00 php-fpm: pool aming.com
root      5769  0.0  0.0 112664   964 pts/0    R+   03:53   0:00 grep --color=auto php-fpm

可以看到多了aming.com,这是二个不同的池子。

第二种配置方法,看起来比较简洁

然后怎么去用他们呢?我们这里把test.com.conf定义php.fcgi.sock,我们也可以把aaa.com.conf定义php.fcgi.sock

[root@liuhongwei vhost]# cat test.com.conf 
server
{
    listen 80;
    server_name test.com test2.com test3.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
#    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
#    {
#          expires      7d;
#          access_log off;
#    }
     location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
     {  
    expires 7d;
    valid_referers none blocked server_names  *.test.com ;
    if ($invalid_referer) {
        return 403;
    }
    access_log off;
}

    location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }
    location /admin/
    {
    allow 192.168.73.129;
    allow 127.0.0.1;
    deny all;
    }  

location ~ .*(upload|image)/.*\.php$
{
        deny all;
}

if ($http_user_agent ~* 'Spider/3.0|YoudaoBot|Tomato')
{
      return 403;
}

location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/php-fcgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
    }


    access_log /tmp/test.com.log hongwei;
}

c5c8a60af568a0899014a462b89a34ec420.jpg

然后再vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加

061a502c5632fa74ab9790c4b85d62ab518.jpg

b34f63b997bfb424b5f575d3bc36f7ba8f1.jpg

02fe5b2a7e35f34fa4340c4e56c6bc15a64.jpg

然后创建一个php-fpm.d

7c2af5c5cc6bd0c20967575863a6821d38b.jpg

然后进入到这个目录下面去:

c54ffa16f59e7a72658df219e39979fc34b.jpg

创建一个www.conf 把www写进来:

f5dde12a184eb5c43b3350243d5a8173cc7.jpg

然后在把创建一个aming.conf,把aming.com写进来

d058e9d62caa5c416d6f0cd295d1bdead06.jpg

在看看有没有错误:

4a7bb0738688ed0eae008c49e506cbe77f4.jpg

然后重启php-fpm

17844dcf5b0bd0f78d0f21bf3da4701a5f2.jpg

在看一下池子,效果是一样的,aming.com在前面,www在后面,多个池子的配置就这样配置。

[root@liuhongwei php-fpm.d]# ps aux|grep php-fpm
root      5853  0.0  0.4 229304  4976 ?        Ss   04:25   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm   5854  0.0  0.4 229244  4720 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5855  0.0  0.4 229244  4720 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5856  0.0  0.4 229244  4720 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5857  0.0  0.4 229244  4720 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5858  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5859  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5860  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5861  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5862  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5863  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5864  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5865  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5866  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5867  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5868  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5869  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5870  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5871  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5872  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5873  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool aming.com
php-fpm   5874  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5875  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5876  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5877  0.0  0.4 229244  4724 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5878  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5879  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5880  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5881  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5882  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5883  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5884  0.0  0.4 229244  4728 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5885  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5886  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5887  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5888  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5889  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5890  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5891  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5892  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
php-fpm   5893  0.0  0.4 229244  4732 ?        S    04:25   0:00 php-fpm: pool www
root      5897  0.0  0.0 112664   964 pts/0    R+   04:26   0:00 grep --color=auto php-fpm
[root@liuhongwei php-fpm.d]# 

这样就有两个子配置文件,也就是说有两个pool了,第一个pool监听了/tmp/www.sock,第二个pool监听了 tmp/aming sock。这样,就可以在 Nginx不同的虚拟主机中调用不同的pool,从而达到相互隔离的目的,两个pool互不影响。

12.22 php-fpm慢执行日志

这一节非常重要,请务必认真看完并理解。php-fpm的慢执行日志阿铭用得非常多,它可以帮助你快速地追踪到问题点。为了更容易理解php-fpm的慢执行日志。先来举一个小例子。
小明是一个运维工程师,他维护的网站是用PHP语言写,运行环境为LNMP,网站访问量不算大,一直都很稳定。但有一天,网站突然很卡,打开一个页面需要10几秒,小明发现问题后,马上登录服
务器排查问题。他做的操作有,使用w命令查看服务器负载,使用free命令查看内存,使用top命令查看哪个进程占用CPU,使用noad命令查看网卡流量……总之小明做了很多操作,种种迹象表明php-fm进程占用了很多资源。但 php-fpm进程究竟在干什么?为什么耗费了很多资源呢?小明很想知道,只有找到问题点,才能解决php-fpm耗费资源的问题,然后网站自然就快了。小明的经验有限,不知道怎么去查看php-fpm什么。在哪一步的时候卡住了呢?小明开始到 Google上去搜文档,找啊找,找啊找,找了很久,也尝试了许多方法,终于“皇天不负有心人”,小明找到了一个很有效的方法,其实就是要介绍的php-fpom慢执行日志。
通过php-fpm的慢执行日志,我们可以非常清晰地了解到PHP的脚本哪里执行时间长,它可以定位到具体的行。在上例中,小明就是通过查看php-fpm的慢执行日志最终得到结论:是因为PHP调用了一个远程的网站接口,而这个接口网络出现故障,访问它需要十几秒的时间,所以php-fpm也会等十几秒,最终导致网站访问很卡。说了这么多,你肯定很想知道如何开启和查看php-fpm的慢执行日志,操作步骤如下:

首先针对www.conf来做实验:在www。conf里面加入二行配置。

11e76757625f9dfcd20e9d0e309b6c68423.jpg

检测语法错误,重新加载。

2a2f5fd6aab4b6279a98e57c238b6bbb8c6.jpg

c3f5a9e7c90acd5eb7847981f7480c3cba6.jpg

然后看一下日志有没有生成。

7c44f0cd081339678a019582f9f256bb898.jpg

然后创建一个脚本,进行测试。

688294d4ec8c5dd629d210752fcfade2f49.jpg

7e602c87300274eef17d8e34d6db82b9ef7.jpg

这个时候我们curl的时候出现了500,那就要找一下错误。

41922916e65ac4f3b0135adad8c58dff848.jpg

可以直接去[root@liuhongwei php-fpm.d]# vi /usr/local/php-fpm/etc/php.ini里面把display_errors的开关打开,这样就可以直接访问然后出现提示错误信息。

找到错误信息就是我们刚才编写的sleep.php里面的符号用错了。改好之后,检查语法错误,然后重新加载,这个时候可以看到停顿了一下。

e686524230a79c09e7929ba75d10022765d.jpg

再来看一下慢执行日志。

757641a29eabd4d99263ebe53f19a317ae5.jpg

然后这个日志提示第三行慢,我们看一下php为什么慢,因为执行了二秒钟,超过了1秒钟,就记录了日志。

87df014941d954649209e7fdc1a174a1da6.jpg

12.23 open_basedir

open_basedir的概念就是安全,httpd可以针对每个虚拟主机设置一个open_basedir,php-fpm同样也可以针对不同的pool设置不同的open_basedir,、。

打开www.conf加入一行配置:

452b308c683ebdc77a4ee39d50ec8250aae.jpg

然后重启php-fpm

550a64d6e58ed4248a7bdf0aef10f940b22.jpg

然后curl测试:

ea56ab26121c85306780cf2510c86455293.jpg

 12.24 php-fpm进程管理

1e27f717b671f154ec9f898dd64dc0c3cb9.jpg

第一行,定义php-fpm的子进程启动模式, dynamic为动态模式;一开始只启动少量的子进程,根据实际需求,动态地增加或者减少子进程,最多不会超过 pm. max children定义的数值。另外一种模式为 static,这种模式下子进程数量由pm. max children决定,一次性启动这么多,不会减少也不会增加。pm. start servers针对 dynamic模式,它定义php-fpm服务在启动服务时产生的子进程数量。Pm. min spare servers针对 dynamic模式,它定义在空闲时段子进程数的最少数量,如果达到这个数值时,php-fpm服务会自动派生新的子进程。pmmax spare servers也是针对 dynamic模式的,它定义在空闲时段子进程数的最大值,如果高于这个数值就开始清理空的子进程。pm. max requests针对 dynamic模式,它定义一个子进程最多处理的请求数,也就是说在一个 php-tpm的子进程中最多可以处理这么多请求,当达到这个数值时,它会自动退出。

b45f5b16be22d0c8f77be6f18b6c13533a1.jpg

一旦把这个位置改为静态。下面的就不生效了。使用了static,那么一下子就启动了五十了。测试一下:

[root@liuhongwei php-fpm.d]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@liuhongwei php-fpm.d]# ps aux|grep php-fpm
root      3056  3.3  0.4 229304  5012 ?        Ss   17:58   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm   3057  0.0  0.4 229244  4724 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3058  0.0  0.4 229244  4724 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3059  0.0  0.4 229244  4724 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3060  0.0  0.4 229244  4724 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3061  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3062  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3063  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3064  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3065  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3066  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3067  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3068  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3069  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3070  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3071  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3072  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3073  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3074  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3075  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3076  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool aming.com
php-fpm   3077  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3078  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3079  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3080  0.0  0.4 229244  4728 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3081  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3082  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3083  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3084  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3085  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3086  0.0  0.4 229244  4732 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3087  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3088  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3089  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3090  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3091  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3092  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3093  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3094  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3095  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3096  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3097  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3098  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3099  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3100  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3101  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3102  0.0  0.4 229244  4736 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3103  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3104  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3105  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3106  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3107  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3108  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3109  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3110  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3111  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3112  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3113  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3114  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3115  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3116  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3117  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3118  0.0  0.4 229244  4740 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3119  0.0  0.4 229244  4744 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3120  0.0  0.4 229244  4744 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3121  0.0  0.4 229244  4744 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3122  0.0  0.4 229244  4744 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3123  0.0  0.4 229244  4744 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3124  0.0  0.4 229244  4936 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3125  0.0  0.4 229244  4936 ?        S    17:58   0:00 php-fpm: pool www
php-fpm   3126  0.0  0.4 229244  4936 ?        S    17:58   0:00 php-fpm: pool www
root      3128  0.0  0.0 112668   964 pts/0    S+   17:59   0:00 grep --color=auto php-fpm

可以看到启动了50个。

在更改一下,然后测试一下:

dd690611a25718fa30f01c836c8994a0e02.jpg

cfedf9a2d2000ffe61aec41981859f2366c.jpg

351db947df202684beae94b1a6219e70759.jpg

可以看到我们定义的启动6个

转载于:https://my.oschina.net/u/3851487/blog/1842560

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值