Nginx资料之 nginx.conf配置文件

◆ 配置文件简单示例:

worker_process      # 表示工作进程的数量,一般设置为cpu的核数
worker_connections  # 表示每个工作进程的最大连接数
server{}            # 块定义了虚拟主机
    listen          # 监听端口
    server_name     # 监听域名
    location {}     # 是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”
    location /{}    # 匹配任何查询,因为所有请求都以 / 开头
        root        # 指定对应uri的资源查找路径,这里html为相对路径,完整路径为
                    # /opt/nginx-1.7.7/html/
        index       # 指定首页index文件的名称,可以配置多个,以空格分开。如有多个,按配置顺序查找。

★ nginx用户及用户 组。

user nginx nginx;

注:window下不指定

★ worker进程数:

worker_processes  4;

注:通常等于CPU数量或者2倍于CPU

◆ 错误日志:存放路径

error_log  logs/error.log;  
error_log  logs/error.log  notice;  
error_log  logs/error.log  info; 

◆ PID进程标识符存放路径:
记录master进程的PID

pid logs/nginx.pid;

◆ 指定进程可以打开的最大描述符:数目

worker_rlimit_nofile 204800;

  这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。

  现在在Linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。

  这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

参考资料:https://www.cnblogs.com/ifindu-san/p/7249028.html

◆ lua_code_cache
语法: lua_code_cache on | off
使用的上下文:http, server, location, location if
作用:lua_code_cache是nginx_lua模块的一条指令。它为 *_by_lua_file(如 set_by_lua_file 和 content_by_lua_file) 这些指令以及Lua模块, 开启或关闭Lua代码缓存.
  如果关闭,每个ngx_lua处理的请求将运行在一个独立的Lua VM实例里,0.9.3版本后有效. 所以 set_by_lua_file, content_by_lua_file, access_by_lua_file, 等等指令引用的Lua文件将不再缓存到内存, 并且所有Lua模块每次都会从头重新加载. 这样开发者就可以避免改代码然后重启nginx的操作.
  但是, 那些直接写在 nginx.conf 里的代码比如由 set_by_lua, content_by_lua, access_by_lua, and rewrite_by_lua 指定的代码不会在你编辑他们时实时更新,因为只有发送HUP信号通知Nginx才会正确重新加载Nginx的config文件。
  即使打开了代码缓存, 那些*_by_lua_file指令里由 dofile 或 loadfile 加载的Lua文件也无法被缓存 (除非你自己手动缓存了他们). 通常你可以用 init_by_lua 或 init_by_lua_file 其中一种指令来加载所有这些无法被缓存 的文件,或把这些文件做成真正的Lua模块并用require加载.

猜你喜欢

转载自blog.csdn.net/sky6even/article/details/81414080