linux备份nginx.conf文件举例:

cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期)

在进程列表里 面找master进程,它的编号就是主进程号。

ps -ef | grep nginx 

查看进程

cat /usr/local/nginx/nginx.pid

每次修改完nginx文件都要重新加载配置文件linux命令:

/usr/local/nginx -t      //验证配置文件是否合法

若nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号就用pid

杀掉进程

kill -HUP /usr/local/nginx/nginx.pid
kill -HUP 主进程号

从容停止Nginx

kill -QUIT /usr/local/nginx/nginx.pid
kill -QUIT 主进程号

快速停止Nginx

kill -TERM /usr/local/nginx/nginx.pid
kill -TERM 主进程号 

强制停止Nginx

kill -9 /usr/local/nginx/nginx.pid
kill -9 主进程号   

个进程如果是相同的进程名可以使用pkill命令

pkill  nginx 

多个进程如果是相同的进程名可以使用Killall命令

killall  nginx 

启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

停止/重新加载

/usr/local/nginx/nginx -s stop(quit,reload)

"http { }"块的开头像配置文件的开头一样都是标准配置不需要修改。这里我们需要把注意力放在这些元素上

连接超时时间,1分钟,具体时间可以根据请求(例如后台导入)需要的时间来设置:

keepalive_timeout  600; 

使用nginx服务器如果遇到timeou情况时可以如下设置参数,使用fastcgi:

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)等

buffer 机制

  对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。
比如如下配置:

fastcgi_buffers      8 4K; #控制 nginx 最多创建 8 个大小为 4K 的缓冲区
fastcgi_buffer_size  4K; #处理 Response 时第一个缓冲区的大小,不包含在前者中

  总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k
  当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。

fastcgi_busy_buffers_size #默认值是fastcgi_buffers的两倍。
fastcgi_temp_file_write_size #在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。

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配置
配置文件举例:

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;
        }
}

location配置
对于特定的请求,一旦nginx匹配一个location来处理。那么这个请求的响应内容就会由这个location块中的指令决定。在这个例子中文档根(doucument root)位于html/目录。根据nginx的安装目录/usr/local/nginx(可以不用),这个location的完整路径是/usr/local/nginx/html。
index指令会告诉nginx使用哪个资源如果请求中没有文件名.

所有以.php结尾的请求都被第二个location块处理。第二个语句块对所有请求指定了一个fastcgi句柄。其它的请求,nginx会使用第一个location块来处理。

fastcgi_pass指令Nginx和PHP-FPM的进程间通信有两种方式:
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

修改nginx配置文件server段的配置,将http的方式改为socket方式。
重启php-fpm与nginx(centos系统命令)

service nginx restart
service php-fpm restart
ls -al /dev/shm

理论上,unix socket 不走网络,效率高一些,但稳定性不是很理想。

fastcgi_param 指令定义变量并赋值。
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指令是包含文件

定义Nginx运行的用户和用户组(自己定义可以忽略)。
user www www;

nginx进程数,建议设置为等于CPU总核心数(自己去定义忽略)。
worker_processes 8;

全局错误日志定义类型,[ debug | info | notice | warn | error | crit ](自己定义可以忽略)
error_log /usr/local/nginx/logs/error.log info;

进程pid文件(根据直接去定义可以忽略)
pid /usr/local/nginx/logs/nginx.pid;

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)的更多相关文章

  1. Linux下双网卡绑定bond配置实例详解

    本文源自:http://blog.itpub.net/31015730/viewspace-2150185/ 一.什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡冗余,带宽 ...

  2. redis.conf配置信息详解

    redis.conf配置信息详解 配置文件 # Redis 配置文件 # 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写) # # 1k =& ...

  3. Linux下的I/O复用与epoll详解(转载)

    Linux下的I/O复用与epoll详解 转载自:https://www.cnblogs.com/lojunren/p/3856290.html  前言 I/O多路复用有很多种实现.在linux上,2 ...

  4. Linux CentOS 服务器搭建与初始化配置图文详解

    这几天对服务器兴趣贼为浓厚,在虚拟机上装了一个CentOS7玩了玩,遇到过很多问题,比如网卡驱动设置,不能ping 等等问题,然后掏钱买个ECS搭服务器玩玩,下面就开始谢谢我的心路历程吧. 首先 买服 ...

  5. PostgreSQL的 pg_hba.conf 配置参数详解

    pg_hba.conf 配置详解 该文件位于初始化安装的数据库目录下 编辑 pg_hba.conf 配置文件   postgres@clw-db1:/pgdata/9.6/poc/data> v ...

  6. Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  7. (二)Linux下的crontab定时执行任务命令详解

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

  8. Linux下的crontab定时执行任务命令详解(参考:https://www.cnblogs.com/longjshz/p/5779215.html)

    在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间. cron的配置文件成为 ...

  9. Linux下的at定时执行任务命令详解

    之前说了使用crontab实现定时执行任务,假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了.一.at服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下 ...

随机推荐

  1. MySQL的常用SQL语句.md

    修改密码 这是常见的大家一般都要用的 首先     安装成功了打开cmd --> mysql -u root -p -->输入你的密码     修改mysql root用户密码    格式 ...

  2. (译+注解)node.js的C++扩展入门

    声明:本文主要翻译自node.js addons官方文档.部分解释为作者自己添加. 编程环境: 1. 操作系统 Mac OS X 10.9.51. node.js v4.4.22. npm v3.9. ...

  3. sphinx随笔记了一下

    sphinx笔记 一:下载中文版coreseek包1:解压后,将etc下的mysql.conf文件复制一份放到上级目录下,改名为sphinx.conf2:配置文件: 2.1:source配置数据源so ...

  4. 关闭Excel提示文件格式和扩展名不匹配的警告框

    打开某些excel表时,Excel会提示: "a.xls"的文件格式和扩展名不匹配.文件可能已损坏或不安全.除非您信任其来源,否则请勿打开.是否仍要打开它?   在编辑大量的xls ...

  5. GBK和UTF8的区别

    GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中 ...

  6. python+selenium自动化软件测试(第13章):selenium面试题

    前言最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下 一.selenium中如何判断元素是否存在?expected_conditions模块提供了16种判断方法 ...

  7. Android binder机制---概述

    1.进程间通讯的原因 目前操作系统都使用虚拟存储技术,管理内存. 假设是32位机器,0-3G是用户空间,3-4G是系统使用.虚拟内存和逻辑内存都按4K分页.这样虚拟内存和逻辑内存就存在对应关系. 一个 ...

  8. MyBatis --- 动态SQL、缓存机制

    有的时候需要根据要查询的参数动态的拼接SQL语句 常用标签: - if:字符判断 - choose[when...otherwise]:分支选择 - trim[where,set]:字符串截取,其中w ...

  9. java多线程知识点概述

    这里只起一个概述的作用,极其简单的列一下知识点,需要在脑海中过一下,如果哪些方面不熟悉的话,建议利用网络资源去学习. 1.线程.进程概念 概念 线程状态及其转换 2.死锁.预防.解决 3.jdk线程实 ...

  10. Day-7: 模块知识

    Python中,一个.py文件就是一个模块(module):而,包含了多个模块的一个目录,称为包. 每一个包中,都包含一个_init_.py文件,可以是一个空文件,这是Python将普通目录识别为包的 ...