赞
踩
使用Nginx的原因:
原因一:IO多路复用epoll
1、什么是IO多路复用
多个描述符的I/O操作都能在一个线程内并发交替地书讯完成,这就叫I/O多路复用。这里的”复用“指的是复用同一个线程。
例如:一个老师给一个班级的学生解答问题的方式:
第一种:老师按顺序去问学生是否做完,这样先做完但是顺序排在后面的同学会等待。
第二种:老师按照学生做完的先后顺序进行解答。
第二种:老师代表的是一个线程,学生代表的是多个描述符的I/O操作。
2、什么是epoll
IO多路复用的实现方式:select、poll,epoll。
select 最早出现,是线性遍历,需要遍历整个列表,以准备唤醒对应的进程去完成数据拷贝。
缺点: 1、效率低下。2、描述符限制是1024个。
epoll:
1、当每个FD就绪的时候,采用系统的回调函数之间将FD放入,效率更高
2、最大连接无限制。
Nginx,采用epoll
原因二:轻量级
功能模块少,代码模块化。
原因三:CPU亲和
是一种把CPU核心和Nginx工作进程绑定的方式,把每一个worker进程固定在一个cpu上进行,减少切换cpu的cache miss ,获得更好的性能
原因四:sendfile 零拷贝,file->内核->socket
更新一下安装方式:yum安装nginx,
首先安装nginx的依赖环境
在/etc/yum.repos.d 目录下创建 nginx.repo文件
输入命令:touch nginx.repo
上官网 http://nginx.org/en/linux_packages.html#stable 拷贝对应linux版本的yum源
本服务器是centos7.4,所以对应的yum如下,将下面这段拷贝到创建的 nginx.repo 中
- [nginx]
- name=nginx repo
- baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
- gpgcheck=0
- enabled=1
输入yum list | grep nginx 可以查看yum版本
执行yum install nginx 安装完毕。
执行nginx -v 即可看到安装的版本
一、yum安装之后的目录详解
路径 类型 作用
/etc/logrotate.d/nginx 配置文件 nginx日志轮转,用于logrotate服务的日志切割
-----------------------------------------------------------------------------------------------------------------------------
/etc/nginx/
etc/nginx/conf.d 目录、配置文件 nginx主配置文件
/etc/nginx/conf.d/default.conf
/etc/nginx/nginx.conf
------------------------------------------------------------------------------------------------------------------------------
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params 配置文件 cgi配置相关,fastcgi配置
/etc/nginx/uwsgi_params
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
/etc/nginx/mime.types 配置文件 设置HTTP协议的Content-Type与拓展名对应关系
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
/usr/lib64/nginx/modules 目录
/etc/nginx/modules Nginx目录模块
------------------------------------------------------------------------------------------------------------------------------
/usr/sbin/nginx 命令 Nginx服务的启动管理的终端命令
/usr/sbin/nginx-debug
------------------------------------------------------------------------------------------------------------------------------
/usr/share/doc/nginx-1.15.0 文件、目录
/usr/share/doc/nginx-1.15.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz Nginx的手册和帮助文件
------------------------------------------------------------------------------------------------------------------------------
/var/cache/nginx 目录 Nginx的缓存目录
------------------------------------------------------------------------------------------------------------------------------
/var/log/nginx 目录 Nginx的日志目录
------------------------------------------------------------------------------------------------------------------------------
二、安装编译参数
nginx -V :会出现如下信息
-prefix=/etc/nginx
--sbin-path=/usr/sbin/nginx
--modules-path=/usr/lib64/nginx/modules
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log 安装目录或者路径
--http-log-path=/var/log/nginx/access.log
--pid-path=/var/run/nginx.pid
--lock-path=/var/run/nginx.lock
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
--user=nginx
--group=nginx 设定Nginx的进程启动的用户和组用户
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
三、进入Nginx主目录
vim /etc/nginx/nginx.config
从上到下依次:
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;
定义日志类型
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
子配置文件
------------------------------------------------------------------------------------------------------------------------------
进入到子配置文件:
命令 : vi /etc/nginx/conf.d/default.conf
------------------------------------------------------------------------------------------------------------------------------
从上到下依次:
列 作用
listen 80; 监听的端口
server_name localhost; 用域名方式访问的地址
------------------------------------------------------------------------------------------------------------------------------
location / { 一个server里可以有多个location,当这是/的时候,------------------------------------------------------------------------------------------------------------------------------
error_page 500 502 503 504 404 /50x.html; 当访问错误的时候,会显示的页面}
------------------------------------------------------------------------------------------------------------------------------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。