linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)
2021-05-13 01:29
标签:hup 正则表达式 nginx配置文件 htm cal 写入 error 多个 防止 linux备份nginx.conf文件举例: 在进程列表里 面找master进程,它的编号就是主进程号。 查看进程 每次修改完nginx文件都要重新加载配置文件linux命令: 若nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号就用pid 杀掉进程 从容停止Nginx 快速停止Nginx 强制停止Nginx 个进程如果是相同的进程名可以使用pkill命令 多个进程如果是相同的进程名可以使用Killall命令 启动 停止/重新加载 "http { }"块的开头像配置文件的开头一样都是标准配置不需要修改。这里我们需要把注意力放在这些元素上 连接超时时间,1分钟,具体时间可以根据请求(例如后台导入)需要的时间来设置: 使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi: 这两个选项. buffer 机制 对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。 总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k fastcgi_cache表示开启FastCGI缓存并为其指定一个名称。开启缓存非常有用,可以有效降低CPU的负载,并且防止502错误的发生。但是开启缓存也会引起很多问题,要视具体情况而定。 fastcgi_cache_valid用来指定应答代码的缓存时间。实例中的值表示将200和302应答缓存一个小时,将301应答缓存1天,其他应答均缓存1分钟。 gzip on使用gizp压缩并不是没有代价的。在降低带宽的同时也增加了CPU的使用。gzip_cop_level的参数取值范围1-9,9代表最用CPU和1代表最少用CPU,其默认值是1 虚拟机server配置 location配置 所有以.php结尾的请求都被第二个location块处理。第二个语句块对所有请求指定了一个fastcgi句柄。其它的请求,nginx会使用第一个location块来处理。 fastcgi_pass指令Nginx和PHP-FPM的进程间通信有两种方式: 修改nginx配置文件server段的配置,将http的方式改为socket方式。 理论上,unix socket 不走网络,效率高一些,但稳定性不是很理想。 fastcgi_param 指令定义变量并赋值。 定义Nginx运行的用户和用户组(自己定义可以忽略)。 nginx进程数,建议设置为等于CPU总核心数(自己去定义忽略)。 进程pid文件(根据直接去定义可以忽略) linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成) 标签:hup 正则表达式 nginx配置文件 htm cal 写入 error 多个 防止 原文地址:http://www.cnblogs.com/sztx/p/7562484.htmlcp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期)
ps -ef | grep nginx
cat /usr/local/nginx/nginx.pid
/usr/local/nginx -t //验证配置文件是否合法
kill -HUP /usr/local/nginx/nginx.pid
kill -HUP 主进程号
kill -QUIT /usr/local/nginx/nginx.pid
kill -QUIT 主进程号
kill -TERM /usr/local/nginx/nginx.pid
kill -TERM 主进程号
kill -9 /usr/local/nginx/nginx.pid
kill -9 主进程号
pkill nginx
killall nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/nginx -s stop(quit,reload)
keepalive_timeout 600;
fastcgi_connect_timeout 75; 链接
fastcgi_read_timeout 600; 读取
fastcgi_send_timeout 600; 发请求
fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间
fastcgi_send_timeout是指nginx进程向fastcgi进程发送request的整个过程的超时时间
这两个选项默认都是秒(s),可以手动指定为分钟(m),小时(h)等
比如如下配置:fastcgi_buffers 8 4K; #控制 nginx 最多创建 8 个大小为 4K 的缓冲区
fastcgi_buffer_size 4K; #处理 Response 时第一个缓冲区的大小,不包含在前者中
当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。fastcgi_busy_buffers_size #默认值是fastcgi_buffers的两倍。
fastcgi_temp_file_write_size #在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
配置文件举例:server {
listen 80; #listen指令告诉nginx在一个特定的hostname,ip或者tcp端口监听连接。默认,http服务运行在80端口
server_name host.hzgapi.com host.hzgapi.com; #指令可以设置基于域名的虚拟主机,根据请求头部的内容,一个ip的服务器可以配置多个域名
root "D:/www/hzgapi"; #指令指定则是最上层目录的定义(路径)
location / {
index index.html index.htm index.php;
#autoindex on;
}
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
对于特定的请求,一旦nginx匹配一个location来处理。那么这个请求的响应内容就会由这个location块中的指令决定。在这个例子中文档根(doucument root)位于html/目录。根据nginx的安装目录/usr/local/nginx(可以不用),这个location的完整路径是/usr/local/nginx/html。
index指令会告诉nginx使用哪个资源如果请求中没有文件名.
Nginx 中 fastcgi_pass 监听端口 unix socket和tcp socket差别;TCP和unix domain socket方式对比;TCP是使用TCP端口连接127.0.0.1:9000。php 5.3以上版本将TCP改成socket方式的配置方法:
修改php-fpm.conf(/usr/local/php/etc/php-fpm.conf)根据直接安装文件所在路径:;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock
重启php-fpm与nginx(centos系统命令)service nginx restart
service php-fpm restart
ls -al /dev/shm
fastcgi_index 作用域:http, server, location.当请求以/结尾的时候,会将请求传递给所设置的index.php文件处理。
fastcgi_split_path_info 作用域:location.Nginx默认获取不到PATH_INFO的值,得通过fastcgi_split_path_info指定定义的正则表达式来给$fastcgi_path_info赋值。
其正则表达式必须要有两个捕获。
第一个捕获的值会重新赋值给$fastcgi_script_name变量。
第二个捕获到的值会重新赋值给$fastcgi_path_info变量。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;//脚本文件请求的路径/目录
$document_root 的参数是由root html那一行定义的,默认是在/etc/nginx/html/ 所以把 html换成站点根目录就正常了。
include指令是包含文件
user www www;
worker_processes 8;
全局错误日志定义类型,[ debug | info | notice | warn | error | crit ](自己定义可以忽略)
error_log /usr/local/nginx/logs/error.log info;
pid /usr/local/nginx/logs/nginx.pid;
上一篇:c#发送短信
下一篇:ActiveMQ在C#中的应用
文章标题:linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)
文章链接:http://soscw.com/essay/84943.html