目录:
一、Nginx配置文件
二、upstream 模块介绍:
三、fastcgi 模块介绍:
四、PHP配置文件
一、Nginx配置文件
user www www; ##nginx程序运行用户和用户组
worker_processes 4; ##nginx 打开的进程数,建议设置为等于CPU总核心数
events >nginx事件区块开始
{
use epoll; ##高性能的网络
worker_connections 1204; ##单个进程的最大连接数(最大连接数=连接数*进程数)
} >nginx事件区块结束
http >https区块开始
{
include mime.types; ##nginx支持的媒体类型库
default_type application/octet-stream; ##nginx 默认的媒体类型
sendfile on; ##开启高效传输模式
keepalive_timeout 60; ##keepalive超时时间
log_format access ‘$remote_addr - $remote_user [$time_local] "$request" ‘ ##nginx访问日志格式
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" $http_x_forwarded_for‘;
server >server区块开始
{
listen 80; ##nginx监听端口号
server_name www.test.com; ##nginx 指定域名参数
index index.php index.html index.htm; ##默认的首页文件,“空格”为分隔符
root /data/www/www.test.com; ##指定nginx的网站根目录,访问内容存放位置
error_log /data/weblogs/nginx_error.log crit; ##nginx错误日志存放位置,同日志类型
access_log /data/wwwlogs/access.log access; ##nginx访问日志存放位置,同日志类型
location ~ \.php$ { >nginx fastcgi区块开始
fastcgi_pass 127.0.0.1:9000; ##php fastcgi监听地址和端口
fastcgi_index index.php; ##默认的首页文档类型
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; ##脚本文件请求的路径
include fastcgi.conf; ##调用fastcgi.conf文件
} >nginx fastcgi区块结束
} >nginx server 区块结束
} >nginx https 区块结束
二、upstream 模块介绍:
upstream模块:可以简单的实现后端服务器负载平衡,例如后端服务器是php服务器
upstream算法:
轮询算法,每个请求按时间顺序分别分配给,后端服务器,如果后端服务器宕机,能自动剔除,会由其他后端主机接着处理请求。
weight算法(权重),指定后端服务器的轮询几率,例如后端服务器硬件配置高等不一,可以使用此算法进行请求分配
配置样板:
upstream myfastcgi {
server 10.10.10.10:9000 weight=1 max_fails=2 fail_timeout=30;
server 10.10.10.11:9000 weight=5 max_fails=2 fail_timeout=30;
}
以配置样板为例,配置后端两台主机为轮询算法,同时也配置了weight(权重)算法,那么当发来请求时,10.10.10.11这台主机的接收请求频率要比10.10.10.10的高,理论上 weight=5的主机处理了5次请求,weight=1,的主机只处理一次请求,想要看到明确的数据请自行测试
三、fastcgi 模块介绍:
这个模块允许nginx与fastcgi进程交互,并通过传递参数来控制fastcgi进程工作
FastCGI 接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇 到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态 脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能
配置样板:
location ~ \.php$ { >nginx fastcgi区块开始,location定义了以.php结尾的请求
fastcgi_pass 127.0.0.1:9000; ##php-fpm监听地址和端口
fastcgi_index index.php; ##默认的首页文档类型
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; ##脚本文件请求的路径,转给php-fpm脚本名
include fastcgi.conf; ##调用fastcgi.conf文件,关于fastcgi相关配置
} >nginx fastcgi区块结束
四、PHP配置文件
PHP配置文件,主要参数介绍
[global]
pid = /usr/local/php/php-fpm.pid
#php-fpm,pid文件存放位置,重启php-fpm文件时需要用到,也是确认服务器是否启动的一种方式
error_log = /data/weblogs/php-fpm-error.log
#php-fpm错误日志存放位置
log_level = notice
#日志级别
emergency_restart_threshold = 10
emergency_restart_interval = 1m
#表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过 emergency_restart_threshold个,php-fpm就会 优雅重启。这两个选项一般保持默认值
process_control_timeout = 5s
#设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0.
daemonize = yes
#后台执行fpm,默认值为yes,如果为了调试可以改为no。在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针 对每个进程池单独设置
[www]
listen = 127.0.0.1:9000
#php-fpm监听地址和端口
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
#php-fpm允许访问的服务器ip
user = www
#php-fpm程序运行用户
group = www
#php-fpm程序运行组
listen.mode=0666
# unix socket设置选项,如果使用tcp方式访问,这里注释即可
pm = dynamic #对于专用服务器,pm可以设置为static
pm.max_children = 64 #子进程,最大数
pm.start_servers = 5 #启动时的进程数
pm.min_spare_servers = 5 #保证空间进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers = 15 #保证空闲进程数最大值,如果空闲进程大于此值,则进行清理
pm.max_requests = 1024
#设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 ‘0‘ 则一直接 受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
request_terminate_timeout = 0s
#设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的‘max_execution_time‘因为某些特殊原因没有中止运行的脚本有用. 设置为 ‘0‘ 表示 ‘Off‘.当经常出现502错误时可以尝试更改此选项
request_slowlog_timeout = 0s #php-fpm slowlog超时时间
slowlog = /data/weblogs/php-fpm-slow.log #php-fpm开启了slowlog
rlimit_files = 65535
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看
原文地址:https://www.cnblogs.com/bazingafraser/p/8505029.html