简介
Nginx是一个轻量级的、高性能的、基于Http的、反向代理服务器,静态web服务器。Nginx最初是由俄罗斯人Igor Sysoev(伊戈尔-塞罗耶夫)使用C语言为俄罗斯访问量第二的Rambler.ru站点开发的一款服务器,2004年10月发布第一个版本。国内大型的站点,例如百度、京东、新浪、网易、淘宝等,都使用了Nginx。Nginx的官网:nginx.org
代理服务器
正向代理
隐藏
翻墙
提速
缓存
反向代理
保护隐藏
分布式路由
负载均衡
动静分离
正向代理与反向代理区别
- 正向代理的客户端清楚自己访问的服务器,而反向代理不清楚。
- 正向代理的代理服务器架设在客户端,而反向代理的代理服务器架设在服务端。
Nginx的特点
高并发
一个Nginx服务器在不做任何配置的情况下并发量可达1000左右,在硬件条件允许的前提下,Nginx可支持高达5-10万的并发量(除了Nginx的设置外,Linux主机需要做大量的设置配合Nginx)。
对比一下Tomcat,Tomcat服务器默认的并发量为150(不做任何配置),当有超过150个用户同时访问某Servlet时,Tomcat的响应就会变得非常慢。
低消耗
官方给出的测试结果,10000个非活跃连接,在Nginx中仅消耗2.5M内存,对于一般性的Dos攻击来说就不是事儿,但对于DDos也会是问题。举个简单的例子理解Dos和DDos两种攻击,如下:
-
Dos攻击:服务不可用,它攻击的是信息安全中的不可用性,例如:很多个人在一台ATM机上面取钱,正在取钱那个人打算取2万块钱,但是他每次只取1百,导致后面的人不能使用ATM机取钱,虽然说是攻击,但是它提交的都是合法的请求。 -
DDos攻击:是针对分布式系统的,例如系统有一堆的ATM机,那么我就来一堆人,像上面的Dos一样,占用了所有的ATM机。
热部署
可以在7*24小时不间断服务的前提下,进行Nginx版本的平滑升级,Nginx配置文件平滑修改,即在不停机的情况下升级Nginx,修改替换Nginx配置文件。
高可用
Nginx之所以可以实现高并发,是因为其具有很多工作进程worker,当这些工作进程中的某些出现问题停止工作时,并不会影响整个系统的整体运行,因为其他worker会接替那些出问题的线程。
高扩展
Nginx之所以现在的用户很多,是因为很多功能都已经开发好并模块化,若需要哪些功能,只需要安装相应功能的扩展模块即可。根据编写扩展模块所使用的语言不同,可以划分为两类:C语言扩展模块与LUA脚本扩展模块。
Nginx下载安装
Nginx下载
进入Nginx官网:nginx.org下载对应的版本。
Nginx安装
- 首先将下载好的
Nginx上传到主机的/usr/tools目录。 - 由于
Nginx是由C/C++语言编写的,所以对其进行编译就必须要使用相关的编译器,对于C/C++语言的编译器,使用最多的是gcc与gcc-c++,而这两款编译器在CentOS7中是没有安装的,所以首先要安装这两款编译器。操作如下图所示
- 安装依赖库,基本的
Nginx功能依赖于一些基本的库,在安装Nginx之前需要提前安装这些库。如下图所示
- 创建解压目录,在
/usr下创建apps目录,用于存放解压
- 解压
Nginx,将Nginx解压到/usr/apps目录中。
- 生成
makefile,在Nginx解压目录下运行make命令,用于完成编译,但此时会给出提示:没有指定目标,并且没有发下编译文件makefile。编译命令make需要根据编译文件makefile进行编译,所以在编译之前需要先生成编译文件makefile,使用configure命令可以生成该文件。
- 编译安装,如下图所示
Nginx命令
- 查看命令选项
./nginx -h,可以查看Nginx命令的选项,如下图所示
./nginx -v查看Nginx版本信息,如下图所示
./nginx -V查看更多Nginx版本信息,例如gcc版本,OpenSSL的版本等,如下图所示
./nginx -t测试配置文件是否正确,默认只测试默认的配置文件conf/nginx.conf;./nginx -T测试配置文件是否正确,并显示配置文件内容;./nginx -tq在配置文件测试过程中,禁止显示非错误信息,只显示错误信息。可以结合-c选项所指定要测试的配置文件,注意,其不会启动Nginx。
./nginx -s stop/quit可以停止Nginx。./nginx -s stop:强制停止Nginx,无论当前工作进程是否正在处理工作./nginx -s quit:优雅停止Nginx,使当前的工作进程完成当前工作后停止。
./nginx -s reload在不重启Nginx的前提下重新加载Nginx配置文件,平滑启动
./nginx -P指定Nginx配置文件的存放路径。./nginx -c file可启动Nginx,-c指定启动的配置文件路径,启动成功后无任何显示。若不指定配置文件,则默认加载的是Nginx安装目录下的conf/nginx.conf。
测试
- 关闭防火墙,如下图所示
- 浏览器访问,由于
Nginx服务器默认的端口号为80,所以在浏览器中直接输入Nginx主机的IP,就可以看到Nginx欢迎页面,只要看到以下页面信息,则说明Nginx安装运行成功。