静态网站 :Nginx服务器能处理的静态元素.html .jpg .mp4 .css
ngx_fastcgi_modul
php-fpm
[root@lnmp ~]# vim /etc/php.ini
;date.timezone = date.timezone=PRC 设置PHP的时区
;open_basedir = oepn_basedir
[root@lnmp ~]# vim /etc/php-fpm.conf
pid = /run/php-fpm/php-fpm.pid #pid存放的位置
error_log = /var/log/php-fpm/error.log #日志存放的位置
;log_level = notice #日志级别
daemonize = yes #守护进程,将fpm转至后台允许 默认no
[root@lnmp ~]# vim /etc/php-fpm.d/www.conf
user = nginx
listen.allowed_clients = 127.0.0.1 #监听允许谁访问,如分离部署填对方IP地址
listen = 127.0.0.1:9000 #fpm监听端口,即nginx中php处理的地址,一般默认值即可,可用格式'ip :port'
slowlog = /var/log/php-fpm/$pool-slow.log #慢查询日志
pm = dynamic #动态模式进程管理开启
pm.start_servers = 5 #最初开启多少进程
pm.min_spare_servers = 5 #最小的多余进程数,最少空闲,用户访问会消耗进程,为了满足后续服务随时开启进程保持空闲数为5
pm.max_children = 50 #最大进程数,限定php程序最大进程数
pm.max_spare_servers = 10 #空闲进程超过35个之后 立刻杀死多余进程只保留35个进程
pm.max_requests = 500 # 每个子进程能相应的请求数量 超过500次请求立刻杀死
生产环境下常用数值
[root@lnmp ~]# vim /etc/php-fpm.d/www.conf
#设置生产环境下常用数值
pm = dynamic #启动动态管理模式
pm.start_servers = 32 #初始启动32个进程
pm.max_children = 512 #最大进程数(子进程会在最大和最小数范围之间变化)
pm.min_spare_servers = 32 #随着用户访问的增加,保持32个空闲进程
pm.max_spare_servers = 64 #随着用户离去,杀死大量进程来节约资源
;pm.max_requests = 1500 #每个子进程处理1500个请求,默认为unlimiter(1024个)
[root@lnmp ~]# systemctl restart php-fpm
[root@lnmp ~]# ps -aux | grep php | wc -l
[root@lnmp ~]# vim /etc/php-fpm.d/www.conf
;pm.status_path = /status #去掉注释
pm.status_path = /php_status #更改为如前所示
[root@lnmp ~]# vim /etc/nginx/nginx.conf #在Server中添加页面转发功能
...
location = /php_status{
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
...
[root@lnmp ~]# systemctl restart nginx php-fpm
http://192.168.100.10/php_status
Location只影响之后带的路径!
启用身份验证模块配置到Server中,应用全局
1)生成账户密码文件
[root@lnmp ~]# yum -y install httpd-tools #安装密码生成工具
[root@lnmp ~]# htpasswd -cm /etc/nginx/conf.d/passwd user10
2)启用身份认证应用至server中
[root@lnmp ~]# vim /etc/nginx/nginx.conf
server {
auth_basic "nginx access test!"; #提示消息
auth_basic_user_file /etc/nginx/conf.d/passwd; #引用认证文件
...
[root@lnmp ~]# systemctl restart nginx
将身份认证加入status
[root@lnmp ~]# vim /etc/nginx/nginx.conf
server {
location = /php_status{
auth_basic "nginx access test!";
auth_basic_user_file /etc/nginx/conf.d/passwd;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
...
[root@lnmp ~]# systemctl restart nginx
访问主页能够正常访问
访问location 限制之后的php_status页面需要输入账户
location [=|~|~*|!~|!~*|^~] /uri/{
module;
module;
}
= 表示精确匹配,优先级也是最高的
~ 区分大小写的正则匹配
~* 不区分大小写的正则匹配
/ 通用匹配,任何请求都会匹配到
^~ 以某些字符串开头
!~ 非 (区分大小写的匹配的正则)
!~* 非 (不区分大小写匹配的正则)
优先级 精准匹配 > 模糊匹配 > 正则匹配 > 配
目的:通过不同的表达式,观察表达式之间的优先级
[root@lnmp ~]# vim /etc/nginx/nginx.conf
# root /usr/share/nginx/html;
# location / {
# index index.php index.html;
# } #将主配置文件部分进行注释
root /abcd; #添加如下测试页面
index index.html;
location = / {
index a.html; }
location ~ / {
index b.html; }
location / {
index c.html; }
[root@lnmp abcd]# systemctl restart nginx
#location = / { index a.html; }
[root@lnmp abcd]# systemctl restart nginx
#location ~ / { index b.html; }
[root@lnmp abcd]# systemctl restart nginx
#location / { index c.html; }
[root@lnmp abcd]# echo index > index.html
[root@lnmp abcd]# systemctl restart nginx
信号 | 说明 |
---|---|
TERM,INT | 立刻停止进程 |
QUIT | 等待进程结束后再结束进程 |
HUP | 平滑地重读配置文件(开启一个新的worker进程读取配置文件,然后关闭旧进程) |
USR1 | 重读日志,分割日志时使用 |
USR2 | 平滑地升级Nginx |
WINCH | 等待进程结束后关闭旧进程(配合USR2来进行升级) |
例:如平滑升级1.12版本到1.14版本
一、编译安装新版本的nginx,指定安装目录为新目录
四、给主程序发送USR2信号
五、给进程发送WINCH信号