Nginx 详解


一、Nginx是什么?

Nginx 是一款轻量级的HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理负载均衡

二、如何安装Nginx

1.安装所需插件

(1).安装gcc

gcc -v  #查看gcc版本
yum -y install gcc #安装gcc

(2).pcre、pcre-devel安装

pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

yum install -y pcre pcre-devel

(3).zlib安装

zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

yum install -y zlib zlib-devel

(4).安装openssl

openssl是web安全通信的基石

yum install -y openssl openssl-devel

2.安装nginx

(1).下载安装包

wget http://nginx.org/download/nginx-1.9.9.tar.gz  

(2).把压缩包解压到usr/local/java

tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/java 

(3).切换到cd /usr/local/java/nginx-1.9.9/下面

./configure 
make
make install

(4).切换到/usr/local/nginx安装目录

cd /usr/local/nginx

(5).配置nginx的配置文件nginx.conf文件,主要也就是端口

cd /usr/local/nginx
cd conf

在这里插入图片描述
开放80端口

(6).启动nginx服务

切换目录到/usr/local/nginx/sbin下面
在这里插入图片描述
启动nginx

./nginx

(7).查看nginx服务是否启动成功

ps -ef | grep nginx

在这里插入图片描述

(8).访问自己的IP出现如下界面,说明安装成功啦!

在这里插入图片描述

3 .相关配置Nginx服务

sudo systemctl enable nginx # 设置开机启动 
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置,一般是在修改过 nginx 配置文件时使用。

三、Nginx作用

1.Http代理,反向代理:

(1).什么是反向代理:代理服务器端

反向代理其实就类似你去找代购帮你买东西(浏览器或其他终端向nginx请求),你不用管他去哪里买,只要他帮你买到你想要的东西就行(浏览器或其他终端最终拿到了他想要的内容,但是具体从哪儿拿到的这个过程它并不知道)。
正向代理:代理客户端,正向代理最大的特点是客户端非常明确要访问的服务器地址。服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息
在这里插入图片描述

(2).作用

(1)保障应用服务器的安全(增加一层代理,可以屏蔽危险攻击,更方便的控制权限)
(2)实现负载均衡
(3)实现跨域(最简单的跨域方式)

(3).反向代理配置

#1、新建/修改配置文件
sudo vi /etc/nginx/server/default.conf

#2、配置示例
server {
    listen       80;        #监听80端口
    server_name  ken.io.local; #监听的域名
    location / {            #转发或处理
        proxy_pass https://ken.io;
    }
    error_page   500 502 503 504  /50x.html;#错误页
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

2.负载均衡

(1).什么是负载均衡

客户端发送的、Nginx反向代理服务器接收到的请求数量,就是我们说的负载量。请求数量按照一定的规则进行分发到不同的服务器处理的规则,就是一种均衡规则。将服务器接收到的请求按照规则分发的过程,称为负载均衡。

(2).采用方式

轮询:权重为1
在这里插入图片描述
加权轮询:依次递增

在这里插入图片描述
iphash:对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端的ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
在这里插入图片描述

(3).负载均衡配置

upstream serverswitch {
    server 127.0.0.1:80;
    server 127.0.0.1:81;
}
server {
    listen       80;        #监听80端口
    server_name   ken.io.local; #监听的域名
    location / {            #转发或处理
        proxy_pass https://serverswitch;
    }
    error_page   500 502 503 504  /50x.html;#错误页
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

3.动静分离

静态请求直接从 nginx 服务器所设定的根目录路径去取对应的资源,动态请求转发给真实的后台(前面所说的应用服务器,如图中的Tomcat)去处理。动静资源做好拆分后,利用静态资源的特点做缓存操作,提高响应效率。
在这里插入图片描述
好处:
1.api接口服务化:动静分离之后,后端应用更为服务化,只需要通过提供api接口即可,可以为多个功能模块甚至是多个平台的功能使用,可以有效的节省后端人力,更便于功能维护。
2.前后端开发并行:前后端只需要关心接口协议即可,各自的开发相互不干扰,并行开发,并行自测,可以有效的提高开发时间,也可以有些的减少联调时间
3.减轻后端服务器压力,提高静态资源访问速度:后端不用再将模板渲染为html返回给用户端,且静态服务器可以采用更为专业的技术提高静态资源的访问速度。

四、Nginx的特点

1.占有内存少、并发能力强,能支撑50000个并发连接数的响应。
2.扩展性好,第三方插件非常多。
3.具有很高的可靠性。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值