首页 > 系统相关 >Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 + 最大文件描述符

Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 + 最大文件描述符

时间:2023-06-26 12:04:01浏览次数:46  
标签:文件 www php tcp nginx 调优 PHP

最大文件描述符


Linux内核本身有文件描述符最大值的**,你可以根据需要更改:

系统最大打开文件描述符数:/proc/sys/fs/file-max
临时性设置:echo 1000000 > /proc/sys/fs/file-max
永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

2、用户级设置
vi /etc/security/limits.conf
httpd soft nofile 4096
httpd hard nofile 10240
httpd是用户,可以使用通配符*表示所有用户。

*               -       nofile          60000
要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
https://www.centos.bz/2012/05/linux-increase-the-maximum-number-of-open-files/

 

TCP/IP参数配置

修改文件/etc/sysctl.conf,配置网络参数。
net.ipv4.tcp_wmem = 4096 87380 4161536
net.ipv4.tcp_rmem = 4096 87380 4161536
net.ipv4.tcp_mem = 786432 2097152 3145728

最大文件描述符

Linux内核本身有文件描述符最大值的**,你可以根据需要更改:

系统最大打开文件描述符数:/proc/sys/fs/file-max
临时性设置:echo 1000000 > /proc/sys/fs/file-max
永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000

 

1.nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx

2.PHP-FPM是什么?

一个PHP FastCGI管理器,是只用于PHP的

PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

3.下面是对php-fpm运行用户进行设置

cd/usr/local/php
cp etc/php-fpm.conf.defaultetc/php-fpm.conf
vi etc/php-fpm.conf

修改
user = www-data
group = www-data

如果www-data用户不存在,那么先添加www-data用户
groupadd www-data
useradd -g www-data www-data

4.修改nginx配置文件以支持php-fpm

nginx安装完成后,修改nginx配置文件为,nginx.conf

其中server段增加如下配置,注意标红内容配置,否则会出现No input file specified.错误

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#(备注:访问过程中可能会报错:”File not found“,解决办法是吧default.conf 文件中改为/var/www/html$fastcgi_script_name;)

参考:

include fastcgi_params;
}

5。启动php-fpm和nginx

########################################################### 

 

/usr/local/php/sbin/php-fpm
#手动打补丁的启动方式/usr/local/php/sbin/php-fpm start
 
sudo/usr/local/nginx/nginx

 5.注意点: chown www-data:www-data /var/www/app/ -Rf

6.cat nginx.conf

user www-data www-data;

 

#############################################

LNMP 架构优化 优化那些 ,特别影响性能那些参数,?

1.

expires 180d;

expires缓存调优

缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存365d,css,js,html可以缓存个10来天,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来, Expires缓存配置在server字段里面。
---------------------
2.gzip on;     #开启压缩功能

3.1、Nginx连接超时时间


 

################################################################

3.2. 异步非阻塞机制
每个 工作进程 使用 异步非阻塞方式,可以处理 多个客户端请求。

每个新连接都会创建另一个文件描述符,并消耗工作进程中少量的额外内存。每一个连接的额外消耗都很少。
NGINX进程可以保持固定的CPU占用率。当没有工作时,上下文切换也较少。

 

1.调优的思路:

nginx要响应请求的话,必须要:

1.要建立socket连接

2.是要读本地的文件

Nginx-PHP优化设置 + lnmp调优的关键影响因素 + php-fpm + nginx返回码 + tcp调优 + 最大文件描述符_PHP

所以参考照上面的优化思路,我们可以更改上面的系统级别的参数,从而进行调优:
1 echo 50000 > /proc/sys/net/core/somaxconn  --- 打开的最大文件的数目
2 echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle --- 加快tcp连接的回收
3 echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse   --- 空的tcp是否允许回收利用
4 echo 0 > /proc/sys/net/ipv4/tcp_syncookies --- 不做洪水抵御

 

 

 

用一个例子来演示会更加清晰



标签:文件,www,php,tcp,nginx,调优,PHP
From: https://blog.51cto.com/u_13747193/6552906

相关文章

  • elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
    1.本次采用的一台主机,将所有的软件安装一台上进行测试工作。2.安装部署:https://blog.51cto.com/hwg1227/22999953.简单调试输出rubydebuginput{file{path=>"/usr/local/log_test/*/*/*.log"start_position=>"beginning"}}output{e......
  • 配置文件 proxy_set_header -发往后端服务器的请求头---- nginx日志设置级别调试技巧
    http{includemime.types;default_typeapplication/octet-stream;sendfileon;#tcp_nopushon;#keepalive_timeout0;keepalive_timeout65;server_tokensoff;log_formatmain'$remote_addr-$remote_user[$time_local]......
  • Nginx 根据请求参数代理到指定网址
    1、参考nginx中将某一个请求的路径重定向到其它网址nginx:[emerg]unknowndirective"if($request_uri"in2、小坑if与($间需要有空格。判断请求路径中,是否包含/adminif($request_uri~'/admin'){return404;}3、配置location/xxxxx/client/register{......
  • wsl phpstrom xdebug 调试环境配置
    系统环境:wsl2安装php+nginx并配置虚拟主机loc.laravel.com对应项目为/www/loc.larave.com目录phpstrom打开wsl内部的项目目录,地址为:\\wsl$\Ubuntu\www\loc.laravel.comwindws宿主机ip为192.168.2.212注意关闭windws防火墙,保证wsl能ping通windows宿主机......
  • MacOs Docker nginx.conf 配置
    `server{listen8089;server_namelocalhost;client_max_body_size120M;#php容器项目地址root/var/www/html/shop;indexindex.phpindex.htmlindex.htm;location/{#try_files$uri$uri//index.php?s=$uri&$args;}......
  • macbook m1 使用 brew 安装 nginx + 多版本 php
    目录macbookm1使用brew安装nginx+多版本php安装多个php版本1.配置php仓库2.安装多版本php3.配置php-pfm的端口4.启动php-pfm服务5.切换php-cli命令行的版本安装nginxmacbookm1使用brew安装nginx+多版本php在FastAdmin开发是,可能会用到多个p......
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用
    前言本文将介绍基于Debian的系统上使用Docker和Nginx进行Web应用部署的过程。着重介绍了Debian、Docker和Nginx的安装和配置。第1步:更新和升级Debian系统通过SSH连接到服务器。更新软件包列表:sudoaptupdate升级已安装的软件包:sudoaptupgrade第2步......
  • 服务器与本地资源同步,在ubuntu自建git库,使用nginx远程http访问
    xshell在linux与windows之间传文件虽然方便,但使用git才能真正实现资源同步。为实现服务器与本地资源同步,在ubuntu服务器端自建git库。使用 git-http-backend 搭建git服务的原理都是类似的,主要是利用web服务器(apache/nginx)进行用户认证,并将用户信息传递给CGI程序 ......
  • Nginx反向代理&记录用户IP地址企业案例
    反向代理机器节点:lb0110.0.0.30#lb01是反向代理服务器(包括负载均衡的功能)www0110.0.0.40www0210.0.0.50【演示反向代理功能】 图片解读:使用客户端机器www01,访问负载均衡lb01(反向代理),看到了www01,www02页面信息在www01服务器上检测客户端信息,发现请求是10.0.0.3......
  • Nginx 优化
    目录一、Nginx隐藏版本号1.访问网站查看版本号2.隐藏方法3.刷新网页二、Nginx更改版本号1.修改Nginx源码文件2.重新编译安装3.将隐藏版本号设置打开4.刷新网页三、Nginx日志分割1.编写shell脚本2.运行脚本3.创建定时任务四、Nginx压缩页面1.更改配置文件2.清空......