一、简介:

1.什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

1.反向代理

  反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址

ingres nginx和ingress controller区别 nginx和express_spring

2.负载均衡

客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

ingres nginx和ingress controller区别 nginx和express_nginx_02

这种架构模式对于早期的系统相对单一,并发请求相对少的情况下是比较合适的,成本也低,但是随着信息数量的不断增加,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相对客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃,很明显这时由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?

我们首先想到的可能是升级服务器的配置,比如提高CPU执行频率,加大内存等提高机器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量及其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能满足需求。那么该怎么办呢?

我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。

ingres nginx和ingress controller区别 nginx和express_spring_03

3.动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力.

动静在一台服务器

ingres nginx和ingress controller区别 nginx和express_linux_04

动静分离

ingres nginx和ingress controller区别 nginx和express_java_05

二、nginx安装

1.使用远程连接工具连接linux操作系统

2. http://nginx.org/ 官网下载

ingres nginx和ingress controller区别 nginx和express_python_06

3.首先安装依赖

ingres nginx和ingress controller区别 nginx和express_java_07

(1).安装pcre

1.将nginx安装文件放到linux系统中

ingres nginx和ingress controller区别 nginx和express_java_08

2.解压压缩文件

ingres nginx和ingress controller区别 nginx和express_python_09

3.进入解压之后目录,执行./configure

4.执行命令(编译并且安装)

ingres nginx和ingress controller区别 nginx和express_java_10

5.安装完后,使用命令,查看版本号

ingres nginx和ingress controller区别 nginx和express_linux_11

(2)安装其他依赖

ingres nginx和ingress controller区别 nginx和express_spring_12

(3)安装nginx

1.将nginx安装文件放到linux系统中

2.解压

ingres nginx和ingress controller区别 nginx和express_spring_13

3.进入目录,执行./configure

ingres nginx和ingress controller区别 nginx和express_linux_14

4.执行命令(编译并且安装)

ingres nginx和ingress controller区别 nginx和express_spring_15

 

安装成功之后,在usr多出来一个文件夹local/nginx,在nginx有sbin有启动脚本

ingres nginx和ingress controller区别 nginx和express_spring_16

启动,并且查看进程

ingres nginx和ingress controller区别 nginx和express_linux_17

 

端口号问题

1.查看开放端口号

ingres nginx和ingress controller区别 nginx和express_spring_18

2.设置开放的端口

ingres nginx和ingress controller区别 nginx和express_nginx_19

3.重启防火墙

ingres nginx和ingress controller区别 nginx和express_python_20

 

大家通过ip地址和端口号在浏览器上访问,出现了这个页面,就说明安装成功了。

ingres nginx和ingress controller区别 nginx和express_nginx_21

三、常用命令

1.使用nginx操作命令前提条件,必须进入nginx的目录

/usr/local/nginx/sbin

ingres nginx和ingress controller区别 nginx和express_spring_22

2.查看nginx版本号

ingres nginx和ingress controller区别 nginx和express_nginx_23

3.开启

ingres nginx和ingress controller区别 nginx和express_nginx_24

4.关闭

ingres nginx和ingress controller区别 nginx和express_java_25

5.重新加载nginx

ingres nginx和ingress controller区别 nginx和express_java_26

 

四、配置文件

1.nginx的配置文件位置

/usr/local/nginx/config/nginx.conf

ingres nginx和ingress controller区别 nginx和express_linux_27

2.nginx配置文件组成

(1). nginx配置文件有三部分组成

第一部分: 全局块

从配置文件开始到events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令

ingres nginx和ingress controller区别 nginx和express_python_28

比如worker_processes 1;  worker_processes 值越大,可以支持的并发处理量也越多。

第二部分:events 块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接

ingres nginx和ingress controller区别 nginx和express_linux_29

比如 worker_connections 1024;  支持的最大连接数

第三部分:http块

Nginx服务器配置中最频繁的部分

http 块也可以包括http全局块、server块

ingres nginx和ingress controller区别 nginx和express_java_30