Nginx简介

Nginx是一个开源且高性能、可靠的HTTP中间件、代理服务。其特点是占有内存少,并发能力强。

Nginx优势:IO多路复用epoll

1、什么是IO复用

它是内核提供的一种同时监控多个文件描述符状态改变的一种能力;例如当进程需要操作多个IO相关描述符时(例如服务器程序要同时查看监听socket和大量业务socket是否有数据到来),需要内核能够监控这许多描述符,一旦这些描述符有就绪(或者状态改变了)就告诉主动告诉进程哪些描述符已经就绪,这样站在进程的角度,就不需要挨个的查看每个描述符是否就绪。

2、什么是IO多路复用

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

参考: http://www.cnblogs.com/zingp/p/6863170.html

3、IO多路复用epoll

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

select方式缺点:

  • 能够监视文件描述符的数量存在最大限制
  • 线性扫描效率低下

select方式优点:

  • Windows、linux都支持

epoll方式优点:

  • 没有最大并发连接的限制
  • 效率提升,不是轮询的方式,不会随着FD数目的增加效率下降

Nginx优势:轻量级

功能模块少

代码模块化

Nginx优势:CPU亲和

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

Nginx优势:sendfile

nginx安装

官方:http://nginx.org/en/linux_packages.html

1、准备

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

2、yum源

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

3、查看

yum list|grep nginx

4、安装

yum install nginx -y

5、版本

nginx -v

nginx安装目录

rpm -ql nginx

配置文件

/etc/logrotate.d/nginx :nginx日志轮转,用于logrotate服务的日志切割

/etc/nginx/nginx.conf:ngnix主配置文件

/etc/nginx/conf.d/default.conf:安装后的配置备份文件

cgi相关配置

  • /etc/nginx/fastcgi_params
  • /etc/nginx/uwsgi_params
  • /etc/nginx/scgi_params

编码转换映射文件

  • /etc/nginx/koi-utf
  • /etc/nginx/koi-win
  • /etc/nginx/win-utf

/etc/nginx/mime.types:文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的Content-Type值

用于配置系统守护进程管理器管理方式(centos7)

  • /usr/lib/systemd/system/nginx-debug.service
  • /usr/lib/systemd/system/nginx.service
  • /etc/sysconfig/nginx
  • /etc/sysconfig/nginx-debug

nginx模块目录

  • /usr/lib64/nginx/modules
  • /etc/nginx/modules

nginx服务的启动管理的终端命令

  • /usr/sbin/nginx
  • /usr/sbin/nginx-debug

nginx的手册和帮助文档

  • /usr/share/doc/nginx-1.12.2
  • /usr/share/doc/nginx-1.12.2/COPYRIGHT
  • /usr/share/man/man8/nginx.8.gz

/var/cache/nginx:nginx的缓存目录

/var/log/nginx:nginx日志目录

ngnix安装编译

nginx -V

大写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

  • 执行对应模块时,nginx所保留的临时性文件

--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

  • 设置额外的参数将被添加到CFLAGS变量

--with-cc-opt

  • 设置附加的参数,链接系统库

--with-ld-opt

nginx中间件的更多相关文章

  1. MySQL5.7之多源复制&Nginx中间件(上)【转】

    有生之年系列----MySQL5.7之多源复制&Nginx中间件(上)-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1 ...

  2. MySQL5.7之多源复制&Nginx中间件(下)【转】

    有生之年系列----MySQL5.7之多源复制&Nginx中间件(下)-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1 ...

  3. Nginx中间件使用心得(一)

    一.Nginx简介 1.什么是Nginx? Nginx是一个高效.可靠的web服务器和反向代理中间件. (高效:支持海量并发请求,可靠:可靠运行的)      2.Nginx地位? 在https:// ...

  4. Nginx中间件使用心得(三)

    一.Nginx搭建系统需求 1.系统硬件:CPU >= 2Core,内存 >= 256M      2.自行搭建服务器(Linux操作系统) (1) 使用vmWare虚拟服务器 (2)使用 ...

  5. Nginx中间件使用心得(二)

    一.基础知识补充 1. 历史由来补充: Nginx是俄罗斯第二大网站的开源项目. 淘宝团队发行了 tengine 增加了很多第三方的包. 2.下载相关的主键 (1)nginx下载地址          ...

  6. 中间件漏洞之Nginx

    中间件漏洞之Nginx 我们常见的中间件有IIS.Apache.Nginx,其中Nginx中间件有什么漏洞呢? Nginx 文件名逻辑漏洞(CVE-2013-4547): 漏洞版本: Nginx 0. ...

  7. Nginx从入门到实践(四)

    Nginx常见问题和排错经验,实践应用场景中的方法处理Nginx安全,常见的应用层安全隐患,复杂访问控制,Nignx的sql防注入安全策略,Nginx的整体配置,搭建合理Nginx中间件架构配置步骤. ...

  8. Nginx从入门到实践(一)

    结合实践.收集各种场景.常见问题,讲解Nginx中最实用的Webserver场景,提供一套整体的搭建配置方式 Nginx中间件,不局限于业务逻辑,有效独立于后台开发框架(不论后端是Java开发.PHP ...

  9. 21、Nginx 常见问题

    1.多个server_name容易产生冲突,会按照如下顺序匹配 1.首先选择所有的字符串完全匹配的server_name.(完全匹配) 2.选择通配符在前面的server_name,如*.bgx.co ...

随机推荐

  1. ubuntu18.04系统下用devstack安装openstack(最新版)

    ubuntu18.04系统下用devstack安装openstack(最新版) 2018年12月14日 16:34:14 Cherls 阅读数:427   前期准备: 安装git,升级pip,其他 s ...

  2. 我踩过的Alwayson的坑!

    最近被sql server Alwayson高可用组和读写分离,弄得神魂颠倒,身心俱疲.遇到了下面一些问题,提醒自己也给后来人做些记录. EntityFramework支不支持Alwayson? 起因 ...

  3. Git——Git的简单介绍【一】

    官方网站 Git官网 https://git-scm.com/ GitHub https://github.com GitLab https://about.gitlab.com/ SVN https ...

  4. Codeforces Global Round 2 D. Frets On Fire (动态开点线段树,沙雕写法)

    题目链接:D. Frets On Fire 思路:明明可以离散化+二分写,思路硬是歪到了线段树上,自闭了,真实弟弟,怪不得其他人过得那么快 只和查询的区间长度有关系,排完序如果相邻的两个点的差值小于等 ...

  5. Django media 配置

    Django  media 配置 settings.py 配置  配置 media 的路径, 以及连接到主路径 还要添加一个 上下文管理 TEMPLATES = [ { 'BACKEND': 'dja ...

  6. Fiddler中显示IP方法

    如何在fiddler查看到请求的IP地址?就像下面这样 打开fiddler, 快捷键Ctrl+R  或者  菜单->Rules->Customize Rules…,然后在CustomRul ...

  7. 【hdu 6161】Big binary tree(二叉树、dp)

    多校9 1001 hdu 6161 Big binary tree 题意 有一个完全二叉树.编号i的点值是i,操作1是修改一个点的值为x,操作2是查询经过点u的所有路径的路径和最大值.10^5个点,1 ...

  8. 【CF487E】Tourists(圆方树)

    [CF487E]Tourists(圆方树) 题面 UOJ 题解 首先我们不考虑修改,再来想想这道题目. 我们既然要求的是最小值,那么,在经过一个点双的时候,走的一定是具有较小权值的那一侧. 所以说,我 ...

  9. 【HDU1848】Fibonacci again and again(博弈论)

    [HDU1848]Fibonacci again and again(博弈论) 题面 Hdu 你有三堆石子,每堆石子的个数是\(n,m,p\),你每次可以从一堆石子中取走斐波那契数列中一个元素等数量的 ...

  10. 压缩JS,CSS的工具

    目标: 压缩项目中的JS,CSS文件. 方法一:使用uglifyjs uglifycss 压缩JS: 1.安装NODEJS.是一个在服务端运行的JS语言.下载地址https://nodejs.org/ ...