nginx-技术知识与实践
文章目录
- 1. 反向代理的认识
- 2.正向代理的认识
- 3.nginx
- 4. nginx的安装(Windows版本)
- 4.1 下载
- 4.2安装
- 4.3启动
- 5.nginx配置文件解析
- 6.nginx应用
1. 反向代理的认识 原理:由代理者代替用户访问真实服务器资源并且将服务器数据返回给用户的过程.
特点:用户无需关心真实的服务器资源到底在哪里.只需要关注数据是否获取.
![nginx-技术知识与实践](https://img.it610.com/image/info8/127218f799654505a1d119f04067a8b6.jpg)
文章图片
具体步骤:
- 用户发起url请求,获取服务器资源
- 转化器利用监听机制获取用户的请求地址.之后根据自身配置文件信息实现了路径的转化.
- 根据转化之后的路径代替用户访问真实服务器资源.
- 服务器接收转化器的请求.在服务器内部查找资源交给转化器.
- 转化器获取数据之后,最终将数据发送给用户的过程.
也可以这么思考:反向代理对于客户端是不可知的,客户端只需知道想要得到某个信息需要访问什么网址,但这个网址对应的真实路径以及资源路径对于客户端而言就是未知。这个过程称为反向代理
![nginx-技术知识与实践](https://img.it610.com/image/info8/091be918f77e43dc97edf70a8cd2aae6.jpg)
文章图片
两者的区别为:两者的区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端
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访问缓存。
官方网站: https://nginx.org/en/download.html.
![nginx-技术知识与实践](https://img.it610.com/image/info8/8b7da368697e42fdb9733fd5778eb5d4.jpg)
文章图片
4.2安装
下载好压缩包,解压即可,切记安装路径不可有中文。
![nginx-技术知识与实践](https://img.it610.com/image/info8/93dd8572395948aca5c946b8797a5305.jpg)
文章图片
4.3启动
双击nginx.exe即可(nginx默认占用端口号80),若启动失败,请往下继续
通过任务管理器可以找到启动信息
![nginx-技术知识与实践](https://img.it610.com/image/info8/4488ea2171974b7086040665cd5be95c.jpg)
文章图片
也可以在cmd,命令窗口中输入命令启动
![nginx-技术知识与实践](https://img.it610.com/image/info8/c0198d98df1843109c710df1aed16b83.jpg)
文章图片
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块:配置请求的路由,以及各种页面的处理情况。
![nginx-技术知识与实践](https://img.it610.com/image/info8/24238842a75a4f0eb44c0e4067b7d55b.png)
文章图片
每一个http块可以包含多个server块,每一个server对应着不同项目的服务。此配置默认情况下是80端口,所以若nginx启动失败的话,最大的原因就是端口占用。上面的配置指定了默认页面。在浏览器输入localhost:90就可以得到一个nginx提供的页面。
![nginx-技术知识与实践](https://img.it610.com/image/info8/4aa08bf00090422da46005b54e72740c.jpg)
文章图片
6.nginx应用 今日我以一个小demo演示。此项目是一个线上xshell服务,若朋友感兴趣,可留言。本项目的端口是9091.运行结果入图:
![nginx-技术知识与实践](https://img.it610.com/image/info8/1ca90829564944e6a57f5502955928a3.jpg)
文章图片
在配置文件添加
server{
listen 80;
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-技术知识与实践](https://img.it610.com/image/info8/83946f9528b146968171ac3fc27d1e27.png)
文章图片
重启nginx后,通过输入 www.xshell.com。
![nginx-技术知识与实践](https://img.it610.com/image/info8/049619556b09409da02e7244927b5e89.png)
文章图片
以此看到nginx域名代理成功。
关于nginx的反向代理以及负载均衡的应用,在往后的分布式项目中进行讲解。
推荐阅读
- 知识
- 小学英语必考的10个知识点归纳,复习必备!
- 生发知识,带你深入了解
- 知识付费的怪力乱象
- GIS跨界融合赋能多领域技术升级,江淮大地新应用成果喜人
- 深入浅出谈一下有关分布式消息技术(Kafka)
- 知识与爱情读后感
- 雅姿雅态知识2【怎么坐?才能坐如芍药|雅姿雅态知识2【怎么坐?才能坐如芍药,尽显女人优雅】
- 碎片化阅读,四步教你建立自己的知识体系
- 自我修养--基础知识