Nginx简介
Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔塞索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,Nginx1.0.4发布。
其特点是占内存少,并发能力强 ,事实上Nginx的并发能力在同类型的网页服务器中表现较好。中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
Nginx是一个安装非常简单,配置文件非常简洁(还能够支持perl语法),Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达50000个并发连接数的响应。
Nginx作用
Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
正向代理:代理客户端(本地)
正向代理类似一个跳板机,代理访问外部资源,比如我们国内访问谷歌,直接访问访问不到,我们可以通过一个正向代理服务器,请求发到代理服,代理服务器能够访问谷歌,这样由代理去谷歌取到返回数据,再返回给我们,这样我们就能访问谷歌了。
正向代理的作用:
(1)访问原来无法访问的资源,如google ;
(2)可以做缓存,加速访问资源;
(3)对客户端访问授权,上网进行认证;
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。
反向代理:代理服务器
反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器 。
反向代理的作用:
(1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
(2)负载均衡,通过反向代理服务器来优化网站的负载。
正向代理与反向代理的区别:
(1)向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端;
(2)反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端。
负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,ip hash。扩展策略就天马行空,只有你想不到的没有它做不到的。
-
轮询
-
加权轮询
-
iphash对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
动静分离
动静分离,软件开发中,部分需求是需要后台处理的,部分需求是不需要经过后台处理的,例如:css、html、jpg、js等文件,这些不需要经过后台处理的文件称为静态文件。让动态网站里面的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动态资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
目前,通过使用Nginx大大提高了我们网站的响应速度,优化了用户体验,增强了网站的健壮性。
Nginx的安装
windows下安装
1、下载Nginx:
官网下载稳定版本即可nginx: download,例如直接下载nginx-1.16.1.zip,然后解压即可。
2、启动Nginx:
-
直接双击nginx.exe,双击后一个黑色的弹框一闪而过。
-
打开cmd命令窗口,切换到nginx解压目录下,输入命令nginx.exe,回车即可
3、检查nginx是否启动成功:直接在浏览器地址栏输入网址http://localhost:80,出现以下页面说明启动成功!
4、配置监听:
nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口是80,如果80端口被占用,修改为未被占用的端口即可。
注意:这里修改了nginx的配置文件nginx.conf时,不需要关闭nginx后重新启动nginx,只需要执行命令nginx -s reload ,即可让改动生效。
5、关闭nginx:
如果使用cmd命令窗口启动nginx,关闭cmd窗口是不能结束进程的,可以使用两种方法关闭nginx,如下:
-
输入nginx命令 nginx -s stop(快速停止nginx)或nginx -s quit(完整有序的停止nginx);
-
使用taskkill命令 taskkill /f /t /im nginx.exe
注意:这里的taskkill是用来终止进程的,/f是强制终止,/t终止指定的进程和任何由此启动的子进程,/im是指定的进程名称。
Linux下安装
1、准备工作
(1)打开虚拟机,使用远程连接工具连接 linux 操作系统
(2)到 nginx 官网下载软件nginx news
2、上传到Linux
3、解压nginx压缩文件
[root@localhost nginx-1.20.2]# tar -zxvf nginx-1.20.2.tar.gz
4、配置configure 需要配置—prefix=/usr/local/nginx 否则回出错误
[root@localhost nginx-1.20.2]# ./configure --prefix=/usr/local/nginx
不加-prefix=/usr/local/nginx 的错误(make时也会出错【 make make: 没有规则可以创建“default”需要的目标“build”。 停止。】):
5、执行make
[root@localhost nginx-1.20.2]# make
6、执行make install
[root@localhost nginx-1.20.2]# make install
7、查看安装编译目录
[root@localhost nginx-1.20.2]# whereis nginxnginx: /usr/local/nginx
8、启动nginx
[root@localhost nginx-1.20.2]# cd /usr/local/nginx/
[root@localhost nginx]# ls
conf html logs sbin
[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ls
nginx nginx.old
[root@localhost sbin]# ./nginx
9、测试nginx ,访问默认端口:80
[root@localhost sbin]# curl http://localhost
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.</p>
<p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.org</a>.<br/>Commercial support is available at<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Nginx常用命令
进入 nginx 目录中: cd /usr/local/nginx/sbin
1、查看 nginx 版本号
./nginx -v
2、启动 nginx
./nginx
查看是否启动成功:
ps -ef|grep nginx
3、停止 nginx
./nginx -s stop
4、重新加载 nginx
./nginx -s reload
nginx.conf配置文件
1、位置
vim /usr/local/nginx/conf/nginx.conf