Day30
LNMP
LNMP基础知识
LNMP:主流的企业网站平台之一
L:Linux操作系统
N:Nginx网站服务软件
M:MySQL、MariaDB数据库
P:网站开发语言(PHP、Perl、Python)
LNMP安装
安装Nginx
yum -y install gcc pcre-devel openssl-devel
useradd nginx
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6
[root@proxy nginx-1.17.6]# ./configure \
> --prefix=/usr/local/nginx \ #指定安装目录
> --user=nginx \ #指定账户名称
> --group=nginx \ #指定组名称
> --with-http_ssl_module #支持加密功能
make && make install
安装MariaDB
yum -y install mariadb //客户端
yum -y install mariadb-server //服务端
yum -y install mariadb-devel //依赖包
安装PHP
yum -y install php //php解释器程序
yum -y install php-fpm //让nginx具有动态解析网站能力
安装PHP扩展
yum -y install php-mysql //给PHP安装拓展库晚间,使得PHP可以连接MariaDB数据库
启动服务
启动Nginx服务
/usr/local/nginx/sbin/nginx
netstat -utnalp | grep:80
启动Mysql服务
systemctl start mariadb
systemctl status mariadb
netstat -utnalp | grep:3306
启动php服务
systemctl start php-fpm
systemctl status php-fpm
netstat -utnalp | grep:9000
FastCGI工作原理
php-fpm 是 fastcgi进程管理器
fastCGI 快速公共网关接口,可以用来,关联网站
配置文件:/etc/php-fpm.d/www.conf
工作流程
1.web Server 启动时载入FastCGI进程管理器
2.FastCGI 进程管理初始化,启动多个解释器进程
3.当客户端请求到达Web Server 时,FastCGI进程管理器选择并连接到一个解释器。
4.FastCGI子进程完成处理后返回结果,将标准输出和错误信息从同一连接返回Web Server
简介
FastCGI技术支持的语言
PHP、C/C++ 、Java、Perl、Python、Ruby等
缺点
因为采取多进程处理所以,内存消耗大。
每个进程消耗7M~50M内存
配置FastCGI
vim /etc/php-fpm.d/www.conf
[www]
listen.allowed_clients=127.0.0.1:9000 //端口与ip地址
user = apache
group = apache
pm = dynamic
pm.max_children=50 //开启的fastCGI进程数量最大值
pm.start_server=5 //启动后开启的fastCGI进程的数量
在Nginx的环境上配置FastCGI
Nginx实现动静分离
vim /usr/local/nginx/conf/nginx.conf
location / {
root html
index index.php index.html index.htm;
}
location ~ \.php${
root html;
fastcgi_pass 127.0.0.1:9000; //php-fpm的Ip与端口
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf; //加载Fast-CGI参数文件
}
地址重写
什么是地址重写
获得一个来访的URL请求,然后改写服务器可以处理的另一个URL的过程
优点
缩短URL,隐藏实际路径提高安全性
易于用户记忆和键入
易于被搜索引擎收录
rewrite语法
基本格式: rewrite 旧地址 新地址 选项
注解:可以在旧地址和新地址处配合使用正则表达式使得匹配更精准
rewrite选项
last:停止执行其他的重写规则,地址栏不变。
break: 停止执行其他重写规则,完成本次请求
redirect;http状态码302 临时重定向,地址栏改变,爬虫不更新URL
permanent:http状态码 301永久重定向,地址栏改变,爬虫更新URL
rewrite 的if格式
if (匹配内容) {rewrite 旧地址 新地址 选项}
内置变量:$http_user_agent
正则表达式
正则表达式匹配模式如下:
区分大小写匹配:~
不区分大小写匹配;~*
区分大小写不匹配:!~
不区分大小写不匹配;:!~*