Nginx的搭建

Nginx的搭建

一、什么是nginx

1.定义:
Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
2.nginx与tomcat之间的关系
除了tomcat以外,apache,nginx,jboss,jetty等都是http服务器。
但是nginx和apache只支持静态页面和CGI协议的动态语言,比如perl、php等,但是nginx不支持java。
Java程序只能通过与tomcat配合完成。
nginx与tomcat 配合,为tomcat集群提供反向代理服务、负载均衡等服务
Nginx的搭建_第1张图片

二、nginx的三大功能

1.反向代理
什么是反向代理?
先看什么是正向代理
正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。
简单一点:A向C借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。
Nginx的搭建_第2张图片
再看什么是反向代理
反向代理(Reverse Proxy),以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求的客户端,此时代理服务器对外表现为一个反向代理服务器。
理解起来有些抽象,可以这么说:A向B借钱,B没有拿自己的钱,而是悄悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他并不知道C的存在。

Nginx的搭建_第3张图片
正向代理和反向代理的区别

a、位置不同
正向代理,架设在客户机和目标主机之间;
反向代理,架设在服务器端;
b、 代理对象不同
正向代理,代理客户端,服务端不知道实际发起请求的客户端;
反向代理,代理服务端,客户端不知道实际提供服务的服务端;
c、 用途不同
正向代理,为在防火墙内的局域网客户端提供访问Internet的途径;
反向代理,将防火墙后面的服务器提供给Internet访问;
d、安全性不同
正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务;
2.负载均衡
Nginx的搭建_第4张图片
3.动静分离
Nginx的搭建_第5张图片

三、Nginx的安装

1.yum安装依赖包
sudo yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel gcc gcc-c++

2.安装依赖包 nginx-1.12.2.tar
解压缩nginx-xx.tar.gz包。
进入解压缩目录,执行
./configure。
make
sudo make install

3.启动、关闭命令
启动命令: 在/usr/local/nginx/sbin目录下执行 ./nginx
关闭命令: 在/usr/local/nginx/sbin目录下执行 ./nginx -s stop
重新加载命令: 在/usr/local/nginx/sbin目录下执行 ./nginx -s reload
nginx占用80端口,默认情况下非root用户不允许使用1024以下的端口,为了能够让非root用户使用80端口,需要赋予非root用户权限
执行以下命令:
sudo setcap cap_net_bind_service=+eip /usr/local/nginx/sbin/nginx

4.修改/usr/local/nginx/conf/nginx.conf

http{
   ..........
   //nginx收到信息后发送的其他节点的地址和权重
    upstream logserver{
      server    hadoop1:8080 weight=1;  
      server    hadoop2:8080 weight=1;
      server    hadoop3:8080 weight=1;
 
    }
    //nginx的名字和监听端口
    server {
        listen       80;
        server_name  logserver;
 
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://logserver;
            proxy_connect_timeout 10;
 
         }
   ..........
}

负载均衡策略
# 1、轮询(默认)
# 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
# 2、指定权重
# 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
#3、IP绑定 ip_hash
# 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
#4、备机方式 backup
# 正常情况不访问设定为backup的备机,只有当所有非备机全都宕机的情况下,服务才会进备机。
#5、fair(第三方)
#按后端服务器的响应时间来分配请求,响应时间短的优先分配。
#6、url_hash(第三方)
#按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

你可能感兴趣的:(Nginx的搭建)