LNMP学习笔记(三)

一nginx配置ssl

1.自制ca证书

#创建相关目录,依次执行
mkdir /etc/pki/ca_test
cd /etc/pki/ca_test/
mkdir root server client newcerts

echo 01 > serial
echo 01 > crlnumber
touch index.txt

#修改配置文件
cd ..
vim tls/openssl.cnf
#更改
[ ca ]
default_ca  = CA_test 
 
[ CA_test ]
dir     = /etc/pki/ca_test     
certs       = $dir/certs       
crl_dir     = $dir/crl     
database    = $dir/index.txt

certificate = $dir/root/ca.crt  
serial      = $dir/serial       
crlnumber   = $dir/crlnumber   
private_key = $dir/root/ca_key

2.制作ca根证书

#制作key
openssl genrsa -out /etc/pki/ca_test/root/ca.key

#根据key制作请求文件
openssl req -new -key /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.csr

#制作crt文件
openssl x509 -req -days 3650 -in /etc/pki/ca_test/root/ca.csr -signkey /etc/pki/ca_test/root/ca.key -out /etc/pki/ca_test/root/ca.crt

3.制作server服务器证书

cd /etc/pki/ca_test/server/

#制作key
openssl genrsa -out server.key

#制作csr,这里server name是域名。签发的机构和上面要一致
openssl req -new -key server.key -out server.csr

#由根证书签名生成的cst文件
openssl ca -in server.csr -cert /etc/pki/ca_test/root/ca.crt -keyfile /etc/pki/ca_test/root/ca.key -out ser.crt -days 3650

4.nginx配置ssl:

cd /usr/local/nginx/conf/vhost/

vim test.conf

server {
    listen 443 ssl;
    server_name www.test.com;
    root /data/www/test2;
    index index.php index.html index.htm;
    ssl on;
    ssl_certificate /etc/pki/ca_test/server/ser.crt;
    ssl_certificate_key /etc/pki/ca_test/server/server.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!eNULL;
    ssl_prefer_server_ciphers on;

如果需要配置代理的话:

server
{
    listen 80 default_server;
    server_name www.test.com;
    error_log /data/logs/test.com.err.log error;
    index index.html index.php;
    location /
    {
        auth_basic    "Auth";
        auth_basic_user_file  /usr/local/nginx/conf/htpasswd;
        proxy_pass https://127.0.0.1:443/;  //这里必须https
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

二. php-fpm的pool

php-fpm的pool是这个php-fpm服务的池子,php-fpm支持定义多个池子,能够监听多个不同的sock或者监听不同的ip。如果Nginx上跑了几个站点,每个站点都可以配置一个pool,当其中一个站点的php报502或者其他错误了,那么其他的站点就不会受到影响。如果全部站点都使用同一个pool的话,当其中一个php出问题了,那么全部的站点都会瘫掉,所以需要每个站点配置一个pool,把这些站点都隔离开来。

配置pool可以在php-fpm的主配置文件里进行配置:

vim /usr/local/php-fpm/etc/php-fpm.conf

在配置文件中增加如下内容:

[test.com]

listen = /tmp/test.sock

#listen = 127.0.0.1:9000

listen.mode = 666

user = php-fpm

group = php-fpm

在配置文件中增加如下内容:

[test.com]

listen = /tmp/test.sock

#listen = 127.0.0.1:9000

listen.mode = 666

user = php-fpm

group = php-fpm
pm.max_requests = 500

rlimit_files = 1024

然后重启服务。
查看进程:ps aux |grep php-fpm
然后在虚拟主机配置文件里配置这个pool:

vim /usr/local/nginx/conf/vhost/aaa.com.conf

增加如下内容:

location ~ \.php$

   {

   include fastcgi_params;

   fastcgi_pass unix:/tmp/test.sock;

   #fastcgi_pass 127.0.0.1:9000;

   fastcgi_index index.php;

   fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

}

把pool都配置在主配置文件里感觉比较乱,我们可以把这些pool都分离到一个个文件中,首先在php-fpm主配置文件里的[global]部分加上以下内容:

include = etc/php-fpm.d/*.conf

接着创建一个php-fpm.d目录:

mkdir /usr/local/php-fpm/etc/php-fpm.d/

进入到该目录下:

cd /usr/local/php-fpm/etc/php-fpm.d/

创建一个www.conf文件:

vim www.conf
然后复制php-fpm主配置文件里www的那个pool内容,粘贴到这个www.conf文件中
接着再创建一个test.conf,同样的也是复制粘贴php-fpm主配置文件里test.com的那个pool内容
这时就可以把php-fpm主配置文件里的pool都删了:

php-fpm慢日志:

php-fpm的慢执行日志是一个很有用的东西,如果需要做php的网站,建议使用lnmp架构,因为我们可以去分析php-fpm的慢执行日志,在运维的日常工作当中经常会遇到一个让人头疼的问题,那就是你的老板或者你的客户经常会反馈网站的访问速度变慢了,所以我们得知道访问慢的根本原因,才能去解决这个访问慢的问题。如果是php网站,就可以通过慢执行日志去分析原因,所以才说php-fpm的慢执行日志是一个很有用的东西。
编辑www.conf文件:

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

重新加载配置。
接下俩编写一个脚本:
vim /data/wwwroot/test.com/sleep.php

脚本内容如下:

<?php echo "test slow log"; sleep(2); echo "done"; ?>

使用curl访问慢日志,查看日志。
所以这就是慢执行日志的作用,能够帮我们记录访问慢的原因。不过一般正常情况下定义为2秒才记录日志会比较好,因为很多的脚本执行由于硬件或框架的原因,都会导致执行时间超过1秒。

open_basedir:
编辑配置文件:

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf

加入以下内容:

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

测试:

curl -x127.0.0.1:80 test.com/sleep.php -I
定义php-fpm的错误日志:

vim /usr/local/php-fpm/etc/php.ini

搜索:error_log

然后在error_log下面指定错误日志存放路径。
定义日志级别。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值