随着互联网技术的迅猛发展,越来越多的网站采用了nginx作为后端的虚拟服务器,nginx的优点多种多样,如反向代理、负载均衡、高并发、可扩展性等等。而在网站的开发中,一般都会使用php语言作为后端语言,因此nginx必须要配置php支持,否则无法处理动态网页。
nginx的内存占用和CPU占用比Apache低,而在php业务中,一般的Apache+php生成的每个子进程都需要笨重的内存开销,这样就会导致大量的内存浪费。但是nginx+php-fpm的方案可以让内存占用降低50%左右运行更加稳定。同时,相比Apache,nginx处理静态文件的速度更快,能够更好地处理CSS、图片等。
server{
listen 80;#监听端口号
server_name localhost;#nginx监听的服务器域名或IP
root /var/www/html;#网站存放目录
index index.php index.html index.htm;#默认打开文件,先检索php文件
client_max_body_size 20m;#最大上传大小
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;#php-fpm的监听socket参数
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
上面是一个nginx配置php的示例,通过这段代码可以看出,nginx的配置主要分为server和location两个部分,server用于配置服务器全局配置,location则用于URI级别的配置。其中,fastcgi_pass参数是php-fpm监听的端口信息,fastcgi_param参数表示将客户端请求的信息传递给php-fpm运行,并获得返回结果。
最后,需要注意的一点是,nginx和php-fpm的版本也是有对应关系的。具体而言,nginx 1.4.x对应php-fpm 5.5.x,nginx 1.6.x对应php-fpm 5.6.x,nginx 1.8.x对应php-fpm 7.0.x。在实际配置中,需要根据应用实际情况进行对应选择,以保证系统的稳定性和安全性。
总之,在开发和部署网站时,nginx和php-fpm都是必备的工具。通过合理的配置,可以让网站更加稳定、高效、安全,也能够提高用户体验,从而更好地满足用户的需求。