Nginx 是一款轻量级的web服务器、反向代理服务器及电子邮件(IMAP、POP3)代理服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现良好。
conf/ Nginx.config 存放Nginx的相关 配置文件
可以先安装 一下 tree 来观看 目录的层级关系,
yum install tree 即可安装 然后执行 tree 就能展示 目录的层级关系。
Niginx 命令:
查看 Nginx版本号 : ./nginx -v
检查配置文件的正确性: 在启动Nginx服务之前,可以先检查一下 conf/nginx.conf文件配置的是否有错误,命令如下: ./nginx -t
启动Nginx服务使用如下命令:./nginx
停止Nginx服务使用如下命令: ./nginx -s stop
执行nginx 命令要在 nginx/sbin目录下
启动完成后可以查看Nginx进程:
ps -ef | grep nginx
重新加载配置文件:
./nginx -s reload
nginx配置文件结构:
全局块:和nginx运行相关的全局配置。
events块:和网络连接相关的配置
http块:代理,缓存,日志记录,虚拟主机配置
http全局块
server块
server全局块:
location块:
注意:http块中可以配置多个server块,每个server块中可以配置多个location块。
具体应用: 部署静态资源 反向代理 负载均衡
部署静态资源:
Nginx可以作为静态web服务器来部署静态资源,静态资源指在服务端真实存在并且能够直接展示的一些文件,比如常见的HTML页面,css文件,js文件,图片,视频等资源.
相对于Tomcat,nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会把静态资源部署到nginx中。将静态资源部署到nginx非常简单,只需要将文件复制到nginx安装目录下的HTML目录中即可。
(将hello.hrml文件复制到 nginx目录下)
listen 80 标识进行监听80端口,资源通过80端口进行访问。
server_name localhost (指定服务器的名称 及域名IP 但是此处未了学习设置成本地localhost)
location/ 表示 所有由80端口监听的请求,都会交给 location进行处理
红色的部分是固定写法,被称为指令。黑色的地方是可以进行配置的,
其中server可以配置多个。
正向代理:是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获取的内容返回给客户端。
正向代理的典型用途就是为了在防火墙的局域网客户端提供访问Internet的途径。
正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。
反向代理:
反向代理服务器是位于用户月目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获取目标服务器的资源,反向单例服务器负责将请求发送给目标服务器。
用户不需要知道目标服务器的地址,也无需在用户端做出任何设定。
反向代理的具体配置:
反向代理
192.168.138.100 这台服务器作为代理服务器,
上面的图的配置大意为:将针对 82端口来的请求,通过proxy_pass 转发到 192.168.138.101:8080这台服务器(这是配置到反向代理的服务器)
在修改conf目录下的 nginx.config文件之后 需要重新使用 ./nginx -s reload 进行加载配置文件
负载均衡:
在早期的网站流量和业务流量都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大,并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平的扩展及避免单点故障出现。
应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回相应数据。
负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理。
其实负载均衡对应的还是反向代理的逻辑,但是负载均衡对应着多台服务器。根据相应的算法,将请求分发到不同的服务器。
在proxy_pass http://targetserver;是在上面的部分的upstream 部分配置的文件 在这个配置中配置了一台服务器的不通端口 server:192.168.138.101:8080 和对应的8081端口(也可以配置为两台或多台服务器),在没有进行配置负载均衡算法时 默认为 轮询的策略