nginx配置文件

nginx及其模块的工作方式是由配置文件指定,默认情况下配置文件被命名为nginx.conf并且存放在/usr/local/nginx/conf或者 /etc/nginx或者 /usr/local/etc/nginx

默认的config

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# 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  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

nginx文件结构

...              #全局块events {         #events块...
}http      #http块
{...   #http全局块server        #server块{ ...       #server全局块location [PATTERN]   #location块{...}location [PATTERN] {...}}server{...}...     #http全局块
}

含义

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

配置文件示例

########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为onmulti_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off#use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventportworker_connections  1024;    #最大连接数,默认为512
}
http {include       mime.types;   #文件扩展名与文件类型映射表default_type  application/octet-stream; #默认文件类型,默认为text/plain#access_log off; #取消服务日志    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式access_log log/access.log myFormat;  #combined为日志格式的默认值sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。upstream mysvr {   server 127.0.0.1:7878;server 192.168.10.121:3333 backup;  #热备}error_page 404 https://www.baidu.com; #错误页server {keepalive_requests 120; #单连接请求上限次数。listen       4545;   #监听端口server_name  127.0.0.1;   #监听地址       location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。#root path;  #根目录#index vv.txt;  #设置默认页proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表deny 127.0.0.1;  #拒绝的ipallow 172.18.5.54; #允许的ip           } }
}

上面是nginx的基本配置,需要注意的有以下几点:


1、1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址; 2.$remote_user :用来记录客户端用户名称; 3.$time_local : 用来记录访问时间与时区;4.$request : 用来记录请求的url与http协议;5.$status : 用来记录请求状态;成功是200, 6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;7.$http_referer :用来记录从那个页面链接访问过来的; 8.$http_user_agent :记录客户端浏览器的相关信息;2、惊群现象:一个网路连接到来,多个睡眠的进程被同事叫醒,但只有一个进程能获得链接,这样会影响系统性能。3、每个指令必须有分号结束。

nginx命令

要启动nginx直接运行nginx文件,启动后可以使用以下命令。

nginx -s [options]

例如,/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf(带配置文件参数的启动nginx)

options参数可以是下面之一:

  • stop - 快速关机
  • quit - 优雅的关机 (等待工作进程完成当前请求的服务时,停止nginx进程)
  • reload- 重新加载配置文件 (当nginx配置发生更改的时候,需要指定该命令才会生效。一旦主进程收到该命令,它将首先检查配置文件的语法正确性然后尝试应用新的配置,如果应用成功,主进程将会启动新的工作进程的同时向旧工作进程发送关闭请求,否则的话主进程将回滚更改继续使用旧的配置。当旧进程接收关闭命令,旧进程会停止接收新的请求同时完成正在处理的请求,最后旧工作进程退出)
  • reopen - 重新打开日志文件

查看nginx进程的列表
ps -ax
该命令可以看到所有进程包括进程ID,默认情况下主进程的ID将写入nginx.pid目录,

如果需要正常关闭某个进程,执行命令:kill -s QUIT 进程ID

参数详解

sudo nginx   #启动 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出
nginx -t   #测试配置文件nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]-?,-h           : 打开帮助信息
-v               : 显示版本信息并退出
-V               : 显示版本和配置选项信息,然后退出
-t                : 检测配置文件是否有语法错误,然后退出
-q               : 在检测配置文件期间屏蔽非错误信息
-s signal       : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
-p prefix        : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/)
-c filename      : 设置配置文件(默认是:/usr/local/etc/nginx/nginx.conf)
-g directives    : 设置配置文件外的全局指令

【Nginx】Nginx配置文件参数/启动参数详解;启动/停止/重新加载配置命令相关推荐

  1. Spring启动流程(原理)详解--结合web.xml加载配置分析 转

    https://blog.csdn.net/a1036645146/article/details/98617303

  2. win7下计划任务schtasks使用详解及错误:无法加载列资源的解决方法1

    win7下计划任务schtasks使用详解及"错误:无法加载列资源"的解决方法1 2011-12-10 20:33 schtasks 命令简述: 安排命令和程序,使其定期运行或在指 ...

  3. linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...

    今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...

  4. Cocos2d之Texture2D类详解之将文件加载成Texture2D对象

    一.声明 笔者以cocos2d框架cocos2d-x-3.3rc0版本的源码做分析.本文为笔者原创,允许转载和分享,只要注明文章出处即可. 二.简介 Texture2D类简介 Texture2D类允许 ...

  5. Android:ViewPager详解(异步网络加载图片,带图片缓存,并带导航小圆点)

    android 应用中,如欢迎指引页面, 和图片轮播功能, 或者更多的内容在一页显示不了,要分成多个页面,这时候viewpager是很好用的. 首先看下效果: 下面是一个例子,带异步网络加载图片,并带 ...

  6. html加载百度地图,百度地图API详解之地图API加载方式

    本文将向大家介绍百度地图API的两种不同加载方式:同步加载和异步加载. 同步加载 这是最常见的加载方式,开发者需要在页面的head标签内添加一个script标签,标签的src属性填写为地图API的地址 ...

  7. JVM详解之:类的加载链接和初始化

    文章目录 简介 加载 运行时常量池 类加载器 链接 验证 准备 解析 初始化 总结 简介 有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初 ...

  8. Google Map API使用详解(七)——加载Google Map API URL的详细解读

    谷歌地图的API类库是通过script标签导入的,形式如下: <script src="http://ditu.google.com/maps?file=api&hl=zh-C ...

  9. 《Windows驱动开发技术详解》之编程加载NT式驱动

    之前我们加载驱动都是利用INSTDRV这个应用,其原理是在注册表中写入相应的字段,这一节我们手动编写代码去加载驱动,其原理类似: 设备驱动程序的动态加载主要由服务控制管理程序(Service Cont ...

最新文章

  1. hdoj 2544 最短路
  2. Lucene的评分(score)机制的简单解释
  3. DotNetCore Web应用程序中的Session管理
  4. 【数论】四则运算的取模处理
  5. Fatal error: Class 'GearmanClient' not found解决方法
  6. Matlab画图函数与参数
  7. win10引导安卓x86_实用教程,教你如何安装Win10+安卓双系统
  8. JMH(java代码的微基准测试)入门和汇总
  9. android 时钟动态图标,神奇的Android动态时钟/时间UI界面
  10. 计算机主机检测不到耳机,win10电脑检测不到耳机的原因及处理方法
  11. linux平台上基于ffmpeg源码的视频格式转换器
  12. 详解opencv的HOG描述子维度数目的计算原理
  13. python去除字符串中的单词_从字符串中删除特定单词的最有效方法
  14. 2023AE软件、Adobe After Effects下载、安装教程
  15. 开学季哪些数码产品值得一看?开学季推荐五款值得入手的好物
  16. 银联在线支付对接流程以及签名算法
  17. Java_基本语法(标识符、数据类型、变量和常量)
  18. Gzip Zlib PNG 压缩算法【转】
  19. 半导体或芯片的90nm、65nm 、0.25um、0.18um、工艺指的是什么?
  20. 在线教学系统:C#实现网络电子白板、课件功能

热门文章

  1. 容斥原理应用(求1~r中有多少个数与n互素)
  2. (九)boost库之文件处理filesystem
  3. vector作为参数传递到dll问题
  4. MongoDB可视化工具--Robo 3T 使用教程
  5. Spring事务“套路”面试
  6. Kafka最全面试题整理|划重点要考
  7. 学会这几招让 Go 程序自己监控自己
  8. AWS发布低延迟互动直播服务
  9. LiveVideoStack线上分享第三季(十三):腾讯云LiteAVSDK演进之路
  10. Go基础编程:基础数据类型