nginx介绍

2022-12-18 0 1,006

NGINX

nginx如是说:Nginx (engine x) 是两个高效能的 HTTP 和 逆向代理 服务项目,也是两个IMAP/POP3/SMTP服务项目。因它的灵活性、丰富的目褐、实例命令行和低计算资源的耗用而闻名于世。

Nginx是这款轻量的Web 伺服器/逆向伺服器端及电子邮件(IMAP/POP3)伺服器端,并在两个BSD-like 协定下发行。其特点是占据缓存少,mammalian潜能强,实际上nginx的mammalian潜能确实在同类型的页面伺服器中表现良好

在高相连mammalian的情况下,Nginx是Apache伺服器极好的代替品。

创办人:米哈伊尔.滕峰诺夫

Nginx缺点:nginx是两个高效能的Web和逆向伺服器端,它具有很多十分得天独厚的优点:

参照自然环境来说:

1)FPS自然环境下参照伺服器实用性,mammalian通话量在7000+~8000左右。应用软件产业商业模式20000+。

2)做为 Web 伺服器:相比 Apache,Nginx 采用更慢的资源,全力支持更多的mammalian相连,充分体现更高的工作效率,这两点使 Nginx 尤其受到应用应用软件服务商的热烈欢迎。能全力支持高达 50,000 个mammalian通话量的积极响应。

3)做为阻抗平衡伺服器:Nginx 既能在内部直接全力支持 Rails 和 PHP,也能全力支持做为 HTTP伺服器端 对内展开服务项目。Nginx 用 C 撰写, 无论是计算资源开支还是 CPU 采用工作效率都比 Perlbal 要好的多。

4)做为邮件伺服器端: Nginx 与此同时也是两个十分杰出的邮件伺服器端(最早开发这个产品的目的之一也是做为邮件伺服器端),Last.fm 叙述了成功因此奇妙的采用经验。

5)Nginx 加装十分的简单,命令行 十分简约(还能支持perl句法),Bugs十分少的伺服器: Nginx 开启特别容易,因此几乎能努力做到7*24无间断运转,即使运转数个月也不需要再开启。你还能在 无间断服务项目的情况下展开应用软件版的升级换代。

3. IO多路复用

I/O multiplexing(多mammalian):multiplexing指的是在一般而言缓存通过历史记录追踪每两个Sock(I/O流)的状态来与此同时管理数个I/O流。发明者它的原因是尽可能多的提高伺服器的标箱。

第二种方法是最传统的多进程mammalian模型(每进来两个新的I/O流会分配两个新的进程管理。)

nginx介绍

第二种方法是I/O数据通信(一般而言缓存,通过历史记录追踪每个I/O流(sock)的状态,来与此同时管理数个I/O流)

nginx介绍

当请求来的时候,nginx采用epoll接受请求的过程:ngnix会有很多相连进来, epoll会把他们都监视起来,然后像拨开关一样,谁有数据就拨向谁,然后调用相应的代码处理。

Epoll:是I/O数据通信最新的实现,修复了select/poll的大部分问题。

Epoll特点:epoll缓存是安全的。epoll告诉你具体哪个sock有数据,你不用自己去找了。

异步非阻塞

1个master进程,2个work进程

每进来两个request,会有两个worker进程去处理。但不是全程的处理,处理到什么程度呢?处理

到可能发生阻塞的地方,比如向后端伺服器转发request,并等待请求返回。那么,这个处理

的worker不会这么一直等着,他会在发送完请求后,注册两个事件:“如果upstream返回了,告诉我一声,

我再接着干”。于是他就休息去了。这就是异步。此时,如果再有request 进来,他就能很快再按这种

方式处理。这就是非阻塞和IO数据通信。而一旦上游伺服器返回了,就会触发这个事件,worker才会来

接手,这个request才会接着往下走。这就是异步回调。

nginx介绍

加装部署

NGINX部署-yum加装

访问nginx的官方网站:http://www.nginx.org/

实用性Yum源的官网:http://nginx.org/en/linux_packages.html

在/etc/yum.repos.d文件夹下创建nginx.repo库,在库中添加文件如下:

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

然后直接yum加装即可

Nginx -v 查看版号

Nginx -V 查看实用性信息及版号

Systemctl start nginx 开启nginx

Systemctl enable ngixn 开机开启

编译加装:(好处:能自定义命令行。)

加装插件:编译自然环境(gcc ,gcc-c++)pcre应用软件包使nginx全力支持http ,rewrite模块(pcre ,pcre-devel)openssl-devel使nginx全力支持ssl协定(openssl ,openssl-devel)zlib库(zlib ,zlib-devel)

Yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel

创建两个用于nginx登陆的用户

Useradd nginx

Passwd nginx

Usermod -s /sbin/nologin nginx 以nginx做为开启用户为了安全不允许ssh远程登录。

加装nginx :wget http://nginx.org/download/nginx-1.16.0.tar.gz下载压缩包

解压到/usr/local/: tar xzf nginx-1.16.0.tar.gz -C /usr/local/

cd /usr/local/nginx-1.16.0/

加装nginx: ./configure –prefix=/usr/local/nginx –group=nginx –user=nginx –sbin-path=/usr/local/nginx/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –http-client-body-temp-path=/tmp/nginx/client_body –http-proxy-temp-path=/tmp/nginx/proxy –http-fastcgi-temp-path=/tmp/nginx/fastcgi –pid-path=/var/run/nginx.pid –lock-path=/var/lock/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-pcre –with-http_realip_module –with-stream

展开编译: make && make install

检测命令行是否正确: /usr/local/nginx/sbin/nginx -t

mkdir -p /tmp/nginx (可能会出现缺失这个文件的情况创建即可)

mkdir /usr/local/nginx/logs(创建日志文件)

开启ngixn服务项目: /usr/local/nginx/sbin/nginx

通过命令控制nginx:

nginx介绍

添加权限:chmod +x /etc/init.d/nginx

重新加载系统开启文件:systemctl daemon-reload

开启并设置开机开启:systemctl start nginx

NGINX 编译参数详解:

nginx介绍
nginx介绍
nginx介绍

修改命令行:/etc/nginx/nginx.conf

nginx介绍
nginx介绍

nginx.conf的组成:nginx.conf一共由三部分组成,分别为:全局块、events块、http块。在http块中又包含http全局块、数个server块。每个server块中又包含server全局块以及数个location块。在统一实用性块中嵌套的实用性快,各个之间不存在次序关系。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务