简介
nginx是一款轻量级的web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存小,并发能力强,事实上nginx的并发能力在同类型的服务器中表现较好,中国大陆使用nginx的网站有百度,京东,腾讯等
nginx是由俄罗斯人开发,最早的发布于2004年
nginx下载和安装
安装过程:
1.安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2.解压压缩包 tar -zxvf nginx-1.16.1.tar.gz
3.到配置目录中去 cd nginx-1.16.1/
4.设置安装目录 ./configure --prefix=/usr/local/app/nginx
5.安装 make && make install
nginx目录结构介绍
1.conf/nginx.cong nginx配置文件
2.html 存放静态文件
3.logs 日志目录,存放日志文件
4.sbin/nginx 二进制文件,用于启动,停止nginx
nginx命令
查看版本号:./nginx -v
检查配置正确性: ./nginx -t
启动和停止:
启动: ./nginx
停止: ./nginx -s stop
启动完成后可以查看nginx进程: ps -ef|grep nginx
当修改nginx配置文件后,需要重新加载才能生效,在sbin目录下输入:
./nginx -s reload
nginx配置文件结构
全局块:和nginx运行相关的全局配置
events块:和网络连接相关的配置
http块:代理,缓存,日志记录,虚拟主机
http全局块
server块
server全局块
location块
注:http块可以配置多个server块,每个server块可以配置多个location块
nginx具体应用
部署静态资源
nginx可以作为静态web服务器来部署静态资源。静态资源是指在服务端真实存在而且可以展示的文件,如html,css等
相比于tomcat,nginx处理静态资源的能力更加高效,所以在生产环境下,一般将金泰资源部署到nginx。
具体过程只需要将文件复制到nginx安装目录下的html目录中即可
例:
server{ listen 80; #监视端口 server_name localhost; #服务器名称 location /{ #匹配客户端请求url root html; #指定静态资源根目录 index index.html; #指定默认首页 }
反向代理
正向代理介绍
是一个位于客户端和原始服务器之间的服务器,为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端
正向代理的典型用途是为在防火墙内的局域网用户提供访问internet途径
正向代理一般是在客户端设置代理服务器,哦通过代理服务器转发请求,最终访问到目的服务器
反向代理介绍:
反向代理服务器位于用户和目标服务器之间,但是对于用户而言,反向代理服务器相当于目标服务器,即用户直接访问反向代理服务器就要可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器
用户无需知道目标服务器的地址,也无需在用户端作任何决定
配置反向代理
server{ listen 80; #监视端口 server_name localhost; #服务器名称 location /{ #匹配客户端请求url proxy_pass http://192.169.209.130; #反向代理配置,将请求转发到指定服务 }
负载均衡
背景
早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,随着互联网的发展,业务流量越来越多,单台服务器的性能以及单点故障问题就显露出来了,需要多台服务器组成应用集群,进行性能的水平拓展以及避免单点故障出现
1.应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理以及返回响应
2.负载均衡器:将用户的请求根据对应的负载均衡算法分发到应用集群中的一台服务器
负载均衡配置
upstream targetserver{ server 192.168.209.100:8080; server 192.168.209.100:8080; } server{ listen 80; #监视端口 server_name localhost; #服务器名称 location /{ #匹配客户端请求url proxy_pass http://targetserver; #负载均衡 }
负载均衡策略
轮询 (默认方式)
Weight 权重方式
Ip_hash 依据ip分配方式
Least_conn 依据最少连接方式
Url_hash 依据url分配方式
fair 依据响应时间