Nginx
Nginxs 是一个开源且高性能 可靠的HTTP中间件 .代理服务
Nginx特性
1.OI多路复用epoll >多个描述符的I/O操作能在一个线程内并发交替的顺序完成
复用是指:复用同一个线
epoll模型: 每当FD就绪,采用系统回调函数之间将fd放入 ,效率更高 ,最大连接数无限制
2.轻量级
功能模块少
代码模块少
3.CPU亲和
是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在在一个cpu上执行 减少切换cpu的cache miss ,获得更好的性能
4.sendfile
sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据
Nginx安装(yum)
复制yum源
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/7/$basearch/
gpgcheck=0
enabled=1
安装nginx
[root@Nginx ~]# yum install nginx
[root@Nginx ~]# nginx -v
nginx version: nginx/1.14.2
安装目录
Nginx默认配置语法
user 设置nginx服务的系统使用用户
worker_processes 工作进程数 一般和cpu核心一致
error_log nginx的错误日志
pid nginx服务启动时候的pid
worker_connections 每个进程数允许最大连接数 最大为65535 一般10000
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf; //子配置文件
}
HTTP请求
[root@Nginx ~]# curl -v www.baidu.com >/dev/null
Nginx日志类型
error.log 记录nginx处理http请求的错误状态以及nginx服务的运行错误状态
access_log 记录http请求的访问状态
主要依赖与log_format 后面为nginx变量 通过连接输入到日志
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;
//对于log_format 只能配置在http中
access_log /var/log/nginx/access.log main;