文章目录
nginx的学习总结(一)
1. 反向代理的认识
原理:由代理者代替用户访问真实服务器资源并且将服务器数据返回给用户的过程.
特点:用户无需关心真实的服务器资源到底在哪里.只需要关注数据是否获取.
具体步骤:
- 用户发起url请求,获取服务器资源
- 转化器利用监听机制获取用户的请求地址.之后根据自身配置文件信息实现了路径的转化.
- 根据转化之后的路径代替用户访问真实服务器资源.
- 服务器接收转化器的请求.在服务器内部查找资源交给转化器.
- 转化器获取数据之后,最终将数据发送给用户的过程.
也可以这么思考:反向代理对于客户端是不可知的,客户端只需知道想要得到某个信息需要访问什么网址,但这个网址对应的真实路径以及资源路径对于客户端而言就是未知。这个过程称为反向代理
2.正向代理的认识
常见的例子有,代理服务器,比如我们想要访问Google官网,若我们在本机上就无法去访问,但使用代理服务器的时候,我们只需要输入Google.com,剩下的事就交给这个代理去做,就能得到返回响应的界面。这个过程中代理服务器其实是隐藏了真实的请求客户端,对于服务器而言并不知道真实的请求客户端到底是谁,客户端请求的服务都被代理服务器代替来请求。
两者的区别为:两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端
3.nginx
nginx正是基于这俩个原理的一个高性能的HTTP和反向代理web服务器,也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
特点:
- 占用内存少 1-2M
- 并发能力强 (理论值)5万次/秒 3万/秒 C语言开发的
- 应用广泛。
- 跨平台性(Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上)
主要应用:
- 静态服务器 :(图片,视频服务),html,js,css,flv,jpg,gif等;
- 反向代理,负载均衡;
- 缓存服务: web访问缓存。
4. nginx的安装(Windows版本)
4.1 下载
官方网站: https://nginx.org/en/download.html.
4.2安装
下载好压缩包,解压即可,切记安装路径不可有中文。
4.3启动
双击nginx.exe即可(nginx默认占用端口号80),若启动失败,请往下继续
通过任务管理器可以找到启动信息
也可以在cmd,命令窗口中输入命令启动
nginx常用命令:
验证配置是否正确: nginx -t
查看Nginx的版本号:nginx -V
启动Nginx:start nginx
快速停止或关闭Nginx:nginx -s stop
正常停止或关闭Nginx:nginx -s quit
重启 nginx -s reload
5.nginx配置文件解析
打开根目录下的con->nginx.conf.。他的结构如下:
#全局块
events { #events块
…
}
http #http块
{
… #http全局块
server #server块
{
… #server全局块
location [PATTERN] #location块
{
…
}
location [PATTERN]
{
…
}
}
server
{
…
}
… #http全局块
}
着重介绍三个主要部分:
1.http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文 件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
2.server块:配置虚拟主机的相关参数,一个http中可以有多个server。
3.location块:配置请求的路由,以及各种页面的处理情况。
每一个http块可以包含多个server块,每一个server对应着不同项目的服务。此配置默认情况下是80端口,所以若nginx启动失败的话,最大的原因就是端口占用。上面的配置指定了默认页面。在浏览器输入localhost:90就可以得到一个nginx提供的页面。
6.nginx应用
今日我以一个小demo演示。此项目是一个线上xshell服务,若朋友感兴趣,可留言。本项目的端口是9091.运行结果入图:
在配置文件添加
server{
listen 90;
server_name www.xshell.com;
location / {
proxy_pass http://localhost:9091;
}
}
切记一定在http{}代码块内才可以。
域名解析
本地域名解析:当用户输入url地址后,本地会先到hosts文件去找域名映射的ip地址,若未找到则进行域名服务器解析。
域名服务器解析:域名服务器就是网络中的一台计算机,里面记录了所有注册备案的域名和ip映射关系,一般只要域名是正确的,并且备案通过,一定能找到
修改本地hosts文件(C:/Windows/System32/drivers/etc/hosts),添加域名映射:
127.0.0.1 www.xshell.com
可以ping一下,看是否可以访问
重启nginx后,通过输入 www.xshell.com。
以此看到nginx域名代理成功。
关于nginx的反向代理以及负载均衡的应用,在往后的分布式项目中进行讲解。