三、Nginx的启动、停止、配置文件重新装载
1、启动
直接使用命令启动,示例,-c后面跟上配置文件路径及名字,如果忽略-c,则使用缺省的配置文件
# /usr/sbin/nginx -c /etc/nginx/nginx.conf
使用服务方式启动,示例如下
# service nginx start
2、启动后的常用管理语法
nginx -s signal
其中signal可以为下列值
stop — fast shutdown
quit — graceful shutdown
reload — reloading the configuration file
reopen — reopening the log files
3、nginx的停止
stop — 快速停止,粗暴模式,不再接受新请求,已经处理的请求被强制关闭,示例如下
# /usr/sbin/nginx -s stop
quit — 优雅停止,不再接受新请求,等待当前的工作进程完成当前的服务器请求,并停止nginx
# /usr/sbin/nginx -s quit
通过服务方式关闭nginx
# service nginx stop
4、配置文件重新装载
reload — 重新载入配置文件
nginx配置文件的任意变更,不会被立即生效,需要使用重载命令或重启nginx
一旦主进程接收到重新加载配置的信号,它检查新的配置文件的语法正确性,并尝试应用新的配置。
否则,主进程回滚所做的更改,并继续使用旧的配置文件工作。
旧的工作进程,接收命令关闭, 停止接受新的连接,并继续服务于当前的请求,直至当前请求服务完毕后,旧的工作进程退出
进程信号可以被发送到nginx,通过Linux/Unix的 kill工具来杀死进程。
在这种情况下的带有进程ID的信号被直接发送到一个进程。
缺省情况下,nginx的主进程PID被写入到位于/usr/local/logs或者/var/run目录的nginx.pid文件。
例如,如果主进程ID是1628,发送nginx正常关机的退出信号,则执行:
kill -s QUIT 1628
通过服务方式重载配置文件
# service nginx reload
四、Nginx配置文件结构
1、配置说明
a、nginx配置文件由不同模块组成,通过模块化的方式实现不同的功能。
b、配置指令分为简单指令和块指令。一个简单的指令,包括名称,用空格分隔参数,并用分号(;)结束。
c、一个块指令由一个或多个简单具有相同的结构简单指令组合而成,使用一组用{}括号括起来表示块结束。
d、上下文:一个块的指令包含有大括号其他指令,它被称为上下文(例如:事件,HTTP,服务器,和位置)。
放置在配置文件中的任何上下文以外的指令都被认为是在主上下文。
e、检查配置文件语法: nginx -t
f、指定nginx要加载的配置文件:nginx -c
2、配置文件构成
Nginx配置文件结构主要由以下几部分构成。
......
events #Events用于配置IO模型,如epoll、kqueue、select或poll等,它们是必备模块。
{
......
}
http #http上下文专用于配置用于http的各模块
{ #包括客户端类指令,文件IO类指令,hash类指令,套接字类指令等
......
server #用于定义虚拟服务器相关的属性,常见的指令有backlog、rcvbuf、bind及sndbuf等
{
......
}
server
{
......
}
......
}
3、基本的nginx.conf配置描述
# more /etc/nginx/nginx.conf
#user nobody; #指定运行worker进程的用户和组
worker_processes 1; #worker线程的个数;通常应该为物理CPU核心个数减1;
#error_log logs/error.log; #配置错误日志文件位置及日志记录级别
#error_log logs/error.log notice;#可用于main、http、server及location上下文中
#error_log logs/error.log info; #语法格式为error_log file |stderr [debug|info|notice|warn|error|crit|alert|emerg]
#pid logs/nginx.pid; #指定pid存放路径
events {
worker_connections 1024; 每个worker进程所能够响应的最大并发请求数;
}
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; #保持连接的超时时长,默认为65s
#gzip on; #是否开启gzip压缩
server {
listen 80; #定义监听的端口 Author:Leshami
server_name localhost; #定义监听的主机 Blog :http://blog.csdn.net/leshami
#charset koi8-r; #定义字符集
#access_log logs/host.access.log main; #访问日志文件存放路径
location / { #location通常用于server上下文中,用于设定某URI的访问属性。location可以嵌套。
root html; #默认首页文件位置,此处当前为相对路径,/etc/nginx/html
index index.html index.htm; #首页文件顺序,如果找不到index.html,则找index.htm
}
#以下部分根据http状态码重定向错误页面
#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;
}
}
}








