Nginx入门简介
标签:Nginx

Nginx入门简介


1. 环境调试确认

四项确认:

  1. 确认公网可用
  2. 确认yum可用
  3. 确认关闭iptables规则 iptables -L 查看 iptables -F 关闭
  4. 确认停用selinux getenforce setenforce 0

两项安装:

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wegt httpd-tools

一次初始化:

cd /opt/
mkdir app download logs work backup

2. Nginx的中间件架构

Nginx是一个开源且高性能,可靠的HTTP中间件,代理服务

3. Nginx实现特点

3.1 特点一:IO多路复用epoll

多个描述符的I/O操作都能在一个线程内并发交替的顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用同一个线程。

IO多路复用的实现方式有select、poll、epoll

3.1.1 select

select采用的线性的方式去遍历阻塞队列,效率低下,并且select能够监视文件描述符的数量存在最大限制(1024个)。

3.1.2 epoll模型

  1. 每当FD就绪,采用系统的回调函数直接将fd放入,效率更高。
  2. 最大连接无限制

3.2 特点二:轻量级

功能模块少,代码模块化,它源代码只保留了与http与它核心功能的代码,一些可以作为插件安装的都不在代码里。

3.3 特点三:CPU亲和(affinity)

CPU亲和:是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。

3.4 特点四:sendfile

原来的http请求文件时,要先从内核空间到达用户空间,再回到内核空间,最后到达socket,但静态文件不太需要用户空间的处理,故上面这样的效率比较低。

Nginx就不需要到用户空间了,直接从内核空间过去,效率更好。

4. Nginx安装

**Step 1:从官网获取修改信息 **

创建 /etc/yum.repos.d/nginx.repo文件,并修改其内容为下面:

nginx官网

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

注意上面的mainline后面跟自己的系统和版本。

Step 2:测试yum

yum list |grep nginx

Step 3: 安装

yum install nginx

Step 4:测试

nginx -v

Step 5:启动

systemctl start nginx.service

出现Nginx版本则正确了。

5. Nginx目录

查看安装目录

rpm -ql nginx

这个命令可以列出安装后Nginx所有目录

路径 类型 作用
/etc/logrotate.d/nginx 配置文件 Nginx日志轮转,用于logrotate服务的日志切割
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
目录,配置文件 Nginx主配置文件
/etc/nginx/fastcgi_params
/etc/nginx/uwsgi_params
/etc/nginx/scgi_params
配置文件 cgi配置相关,fastcgi配置
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf
配置文件 编码转换映射转化文件
/etc/nginx/mime.types 配置文件 设置http协议的Content-Type与扩展名对应关系
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
配置文件 用于配置出系统守护进程管理器管理方式
/usr/lib64/nginx/modules
/etc/nginx/modules
目录 Nginx模块目录
/usr/sbin/nginx
/usr/sbin/nginx-debug
命令 Nginx服务的启动管理的终端命令
/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的日志目录

6. 安装编译参数

编译选项 作用
--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
安装的目录或路径,基础路径,在编译的时候已经加入进去了
--http-client-body-temp-path=/var/cache/nginx/client_temp
--http-proxy-temp-path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
执行对应模块时,Nginx所保留的临时性文件
--user=nginx
--group=nginx
设定Nginx进程启动的用户和组用户
--with-cc-opt= 参数 设置额外的参数将被添加到CFLAGS变量
--with-ld-opt= 参数 设置附加的参数,链接系统库
  • 5 min read

CONTRIBUTORS


  • 5 min read