安卓毕业设计代做网站,PS网站设计,族蚂建站,视频网站 外链CGI
概念
nginx通过与第三方基于协议实现#xff0c;即通过某种特定协议将客户端请求转发给第三方服务处理#xff0c;第三方服务器会新建新的进程处理用户的请求#xff0c;处理完成后返回数据给Nginx并回收进程(下次处理有需要新建)#xff0c;最后nginx在返回给客户端…CGI
概念
nginx通过与第三方基于协议实现即通过某种特定协议将客户端请求转发给第三方服务处理第三方服务器会新建新的进程处理用户的请求处理完成后返回数据给Nginx并回收进程(下次处理有需要新建)最后nginx在返回给客户端那这个约定就是通用网关口(common gateway interface简称CGI)CGI协议 是web服务器和外部应用程序之间的接口标准是cgi程序和web服务器之间传递信息的标准化接⼝口。
通信方式 FastCGI
概念
CGI每收到一个请求都会创建一个CGI进程初始化环境请求结束的时候再关闭进程效率非常的低FastCGI每次处理完请求之后不会关闭掉进程而是保留这个进程使这个进程可以处理多个请求。大大提升了处理效率。
通信方式 PHP-FPM
PHP-FPM(FastCGI Process ManagerFastCGI进程管理器)是一个实现了Fastcgi的管理程序并且提供进程管理的功能进程包括master进程和worker进程master进程只有一个负责监听端⼝口接受来自web server的请求。worker进程一般会有多个每个进程中会嵌⼊入一个PHP解析器器进行PHP代码的处理。
基本参数配置
Module ngx_http_fastcgi_module proxy_pass http:// fastcgi_pass 192.168.33.180:9000;转发请求到后端服务器address为后端的fastcgi server的地址可用位置location fastcgi_index name; fastcgi默认的主⻚页资源示例fastcgi_index index.php; fastcgi_param parameter value [if_not_empty]; 设置传递给FastCGI服务器的参数值可以是文本变量或组合可用于将Nginx的内置变量量赋值给自定义key fastcgi_param REMOTE_ADDR $remote_addr; 客户端源IP fastcgi_param REMOTE_PORT $remote_port; 客户端源端口 fastcgi_param SERVER_ADDR $server_addr; 请求的服务器IP地址 fastcgi_param SERVER_PORT $server_port; 请求的服务器端⼝口 fastcgi_param SERVER_NAME $server_name; 请求的server name Nginx默认配置示例 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 默认脚本路径 include fastcgi_params; } 缓存参数配置
定义 fastcgi_cache_path path [levelslevels] [use_temp_pathon|off] keys_zonename:size [inactivetime] [max_sizesize] [manager_filesnumber] [manager_sleeptime] [manager_thresholdtime] [loader_filesnumber] [loader_sleeptime] [loader_thresholdtime] [purgeron|off] [purger_filesnumber] [purger_sleeptime] [purger_thresholdtime]; 定义fastcgi的缓存 path 缓存位置为磁盘上的文件系统路径 max_sizesize 磁盘path路中用于缓存数据的缓存空间上限 levelslevels十六进制的缓存目录的层级数量以及每一级的目录数量 levelsONE:TWO:THREE示例leves1:2:2 keys_zonename:size 设置缓存名称及k/v映射的内存空间的名称及大小 inactivetime 缓存有效时间默认10分钟需要在指定时间满足fastcgi_cache_min_uses 次 数被视为活动缓存。 调用 fastcgi_cache zone | off; 调用指定的缓存空间来缓存数据可用位置http, server, location fastcgi_cache_key string;定义用作缓存项的key的字符串 示例fastcgi_cache_key $request_uri; fastcgi_cache_methods GET | HEAD | POST ...;为哪些请求方法使用缓存 fastcgi_cache_min_uses number;缓存空间中的缓存项在inactive定义的非活动时间内至少要被访问到此处所指定的次数方可被认作活动项 fastcgi_keep_conn on | off;收到后端服务器响应后fastcgi服务器是否关闭连接建议启⽤用长连接 fastcgi_cache_valid [code ...] time;不同的响应码各自的缓存时长 fastcgi_hide_header field; 隐藏响应头指定信息 fastcgi_pass_header field; 返回响应头指定信息默认不会将Status、X-Accel-...返回 示例
Nginx与php-fpm在同一服务器
安装php-fpm yum install php-fpm php-mysql -y systemctl enable --now php-fpm ps -ef | grep php-fpm php配置优化
vim /etc/php-fpm.conf
include/etc/php-fpm.d/*.conf
pid /run/php-fpm/php-fpm.pid
error_log /var/log/php-fpm/error.log
daemonize yes 是否后台启动
vim /etc/php-fpm.d/www.conf
listen 127.0.0.1:9000 监听地址及IP
listen.allowed_clients 127.0.0.1 允许客户端从哪个源IP地址访问要允许所有行⾸加;注释即可
user nginx php-fpm启动的用户和组会涉及到后期⽂件的权限问题
group nginx
pm dynamic 动态模式进程管理
pm.max_children 500 静态方式下开启的php-fpm进程数量在动态方式下他限定php-fpm的最大进程数
pm.start_servers 100 #动态模式下初始进程数必须⼤于等于pm.min_spare_servers和小于等于pm.max_children的值。
pm.min_spare_servers 100 #最小空闲进程数
pm.max_spare_servers 200 #最大空闲进程数
pm.max_requests 500000 #进程累计请求回收值会回收并重新⽣成新的⼦进程
pm.status_path /pm_status #状态访问URL
ping.path /ping #ping访问动地址
ping.response ping-pong #ping返回值
slowlog /var/log/php-fpm/www-slow.log #慢日志路径
php_admin_value[error_log] /var/log/php-fpm/www-error.log #错误日志
php_admin_flag[log_errors] on
php_value[session.save_handler] files #phpsession保存⽅式及路径
php_value[session.save_path] /var/lib/php/session #当时使⽤file保存session的文件路径
nginx配置
[rootlocalhost ~]# cat /apps/nginx/conf/conf.d/pc.conf
location ~ \.php$ {root /etc/nginx/php;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;} 访问 Nginx与php-fpm不在同一服务器
安装php-fpm wget https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm yum install -y remi-release-7.rpm yum install php72-php-fpm php72-php-mysql -y rpm -ql php72-php-fpm 准备配置文件 cp /opt/remi/php72/root/usr/share/doc/php72-php-common-7.2.34/php.ini-production /opt/remi/php72/root/usr/etc/php.ini cp cp /opt/remi/php72/root/usr/share/doc/php72-php-fpm-7.2.34/php-fpm.conf.default /opt/remi/php72/root/usr/etc//php-fpm.conf 修改配置文件
vim /etc/opt/remi/php72/php-fpm.d/www.conf
user nginx
group nginx
listen 192.168.33.171:9000 指定监听IP
;listen.allowed_clients 127.0.0.1 注释运⾏行的客户端 创建用户
创建用户并保持与nginx的uid保持一致 useradd nginx -u 1000 配置nginx server {listen 80;listen 443;ssl_certificate /apps/nginx/certs/xxx.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/xxx.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name xxx.fxq.com;location / {root /data/nginx;index index.html;
}location ~ \.php$ {root /data/nginx/php;fastcgi_pass 192.168.33.171:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /data/nginx/php$fastcgi_script_name;include fastcgi_params;
}} 访问 负载均衡器实现php
安装haproxy yum install -y haproxy 配置文件
listen php-9000bind 192.168.33.171:9000mode tcpserver php2 192.168.33.162:9000 check inter 3 fall 3 rise 3
nginx配置
server {listen 80;listen 443;ssl_certificate /apps/nginx/certs/xxx.fxq.com.crt;ssl_certificate_key /apps/nginx/certs/xxx.fxq.com.key;ssl_session_cache shared:sslcache:20m;ssl_session_timeout 10m;server_name xxx.fxq.com;location / {root /data/nginx;index index.html;
}location ~ \.php$ {root /data/nginx/php; fastcgi_pass 192.168.33.162:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /data/nginx/php$fastcgi_script_name;include fastcgi_params;
}}
访问