Nginx主配置文件位置一般放在/usr/local/nginx/conf/nginx.conf
配置语句格式为 “关键字 值;” ( 例:keyname key; )
在http内可以有多个server
在server内可以有多个loctation
主配置文件包括
1 全局配置 (在括号之外的内容)
user nginx [nginx]; 运行用户(nginx组可以不用写)
worker_processes 2; 指定工作进程数量 (一般都是按照核心数指定一比一)
worker_cpu_affinity 01 10; (指定CUP分配。如果四核0001 0010 0100 1000)
worker_rlimit_nofile 102400; (指定Nginx一个进程打开的最多文件数目,理论值应该是最多打开文件数【ulimit -n查看,修改:ulimit -n 新值】【ulimit -u 最大用户进程数,修改:ulimit -u 新值】这两个值最好一样,现在是临时修改,永久修改把这两条命令放在/etc/profile内)
error_log logs/error.log; (错误日志存放位置)
pid logs/nginx.pid; (进程PID存放位置)
2 I/O事键 (events括号内的内容)
use epoll; (使用epoll模型,对于2.6以上的内核,建议使用epoll模型以提高性能)
worker_connections 1024; (工作连接数量,一般工作中配置为4096。单个工作进程并发数量,服务器总并发数量为工作进程数X工作连接数)
3HTTP配置 (http括号内的内容)
以下为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"'; (定义日志输出格式,输出格式名字为main )【$开头的内容为Nginx的内置变量:$remote_addr 客户端地址
$remote_user 客户端用户
$remote_user 时间
$request 请求 请求方法
$status 状态,包含返回值,例,200,302,301
$body_bytes_sent 指定主体大小
$http_referer 指定来源于什么连接
$http_user_agent 指定客户端浏览器相关信息
$http_x_forwarded_for 写客户端IP,一般为空值】
access_log logs/access.log main; (访问日志存放位置,遵循main格式输出)
sendfile no; (是否允许文件下载或传输,on为允许)
keepalive_timeout 65; (指定长连接超时时间)
查看Nginx的状态信息
以下为server内
listen 80; (监听端口)【端口可是也可以写(IP:端口号)】
server_name localhost; (域名)
charset utf-8; (字符集)
#access_log logs/host.access.log main; (指定虚拟主机访问日志,*可以不要)
location / { (location匹配【/根】)
root html; (当访问【/根】的时候,要去html里面找页面)
index index.html index.htm; (用来定义默认主页首页,在html里面找以上类型文件)
}
以下还是在server内
location /status {
stub_status on; (打开状态统计功能)
access_log off; (关闭此位置的日志记录)【属于维护,不属于访问网页,所以不必存储日志】
}
当输入网址IP/status时,显示一下内容
Active connections: 2 (当前活跃连接数)server accepts handled requests (已经处理了2个,握手了2个,总请求1个) 2 2 1 Reading: 0 Writing: 1 Waiting: 1 (正在读的为0,正在写的为1,正在等待的为1)
Nginx进程信号,可以使用kill或者killall传送
HUP 重置配置 等同于-1 (killall -1 nginx)
QUIT 退出进程 等同于-3 (会删除PID文件)
KILL 杀死进程 等同于-9 (不会删除PID文件)
例如 killall -s HUP nginx 重新加载