nginx可以用来做什么

1)反向代理

2)动静分离

3)负载均衡
反向代理

反向代理应该是Nginx做的最多的一件事了。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已

server {  listen       80;                                                         server_name  localhost;                                               client_max_body_size 1024M;location / {proxy_pass http://192.168.111.111:8080;proxy_set_header Host $host:$server_port;}
}

保存配置文件后启动Nginx,这样当我们访问localhost的时候,就相当于访问192.168.111.111:8080了
负载均衡
负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。
1 RR(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

简单配置

upstream test {server localhost:8080;server localhost:8081;
}
server {listen       81;                                                         server_name  localhost;                                               client_max_body_size 1024M;location / {proxy_pass http://test;proxy_set_header Host $host:$server_port;}
}

负载均衡的核心代码为

upstream test {server localhost:8080;server localhost:8081;
}

这里我配置了2台服务器,当然实际上是一台,只是端口不一样而已,而8081的服务器是不存在的,也就是说访问不到,但是我们访问http://localhost 的时候,也不会有问题,会默认跳转到http://localhost:8080 具体是因为Nginx会自动判断服务器的状态,如果服务器处于不能访问(服务器挂了),就不会跳转到这台服务器,所以也避免了一台服务器挂了影响使用的情况,由于Nginx默认是RR策略,所以我们不需要其他更多的设置。
权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

例如

upstream test {server localhost:8080 weight=9;server localhost:8081 weight=1;
}

那么10次一般只会有1次会访问到8081,而有9次会访问到8080

HTTP服务器
Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现,首先看看Nginx做静态资源服务器

server {listen       80;                                                         server_name  localhost;                                               client_max_body_size 1024M;location / {root   e:\root;index  index.html;}
}

这样如果访问http://localhost 就会默认访问到E盘root目录下面的index.html,如果一个网站只是静态页面的话,那么就可以通过这种方式来实现部署。

动静分离
 动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路

upstream test{  server localhost:8080;  server localhost:8081;  }   server {  listen       80;  server_name  localhost;  location / {  root   e:\root;  index  index.html;  }  # 所有静态请求都由nginx处理,存放目录为html  location ~ \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {  root    e:\root;  }  # 所有动态请求都转发给tomcat处理  location ~ \.(jsp|do)$ {  proxy_pass  http://test;  }  error_page   500 502 503 504  /50x.html;  location = /50x.html {  root   e:\root;  }  }

这样我们就可以吧HTML以及图片和css以及js放到root目录下,而tomcat只负责处理jsp和请求,例如当我们后缀为gif的时候,Nginx默认会从root获取到当前请求的动态图文件返回,当然这里的静态文件跟Nginx是同一台服务器,我们也可以在另外一台服务器,然后通过反向代理和负载均衡配置过去就好了,只要搞清楚了最基本的流程,很多配置就很简单了,另外localtion后面其实是一个正则表达式,所以非常灵活
热启动
Nginx 是支持热启动的,也就是说当我们修改配置文件后,不用关闭 Nginx,就可以实现让配置生效,当然我并不知道多少人知道这个,反正我一开始并不知道,导致经常杀死了 Nginx 线程再来启动……

Nginx 从新读取配置的命令是:

nginx -s reload

Windows 下面就是:

nginx.exe -s reload

nginx可以用来做什么相关推荐

  1. nodejs可以用来做什么

    本文属于转载,原文地址:https://blog.csdn.net/xllily_11/article/details/50482468 Node.JS 学习路线图 从零开始nodejs系列文章, 将 ...

  2. Python培训分享:python爬虫可以用来做什么?

    爬虫又被称为网络蜘蛛,它可以抓取我们页面的一些相关数据,近几年Python技术的到来,让我们对爬虫有了一个新的认知,那就是Python爬虫,下面我们就来看看python爬虫可以用来做什么? Pytho ...

  3. 刚进来的小伙伴说Nginx只能做负载均衡,还是太年轻了

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文只针对 Nginx 在不加载第三方模块的情况能处理哪些 ...

  4. python可以干什么-Python可以用来做什么 为你揭开python神秘面纱

    Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24     来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...

  5. Nginx可以做什么?看完这篇你就懂了

    前言 本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得.所以还请见谅,同时欢迎留言交流 N ...

  6. 基带工程师是做什么的_【思唯网络学院】网络工程师认证可以用来做什么?

    点击上方"蓝字"关注我们了解更多精彩01思科华为证书可以用来做什么 网工证书从本质来说是证明你有这个能力,如果证书本身证明不了什么,那这个证书就已经失去该有的功能了. 这也是为何现 ...

  7. thinkphp用来做什么项目_用蜂蜜做的饮料有哪些?蜂蜜可以用来做什么饮料?

    用蜂蜜做的饮料有哪些?蜂蜜可以用来做什么饮料? 大家都知道蜂蜜的味道香甜可口,性质也比较温和,可以和很多食物搭配制作饮料,那蜂蜜饮料具体应该如何制作呢?下面田野牧蜂给大家介绍一下做法. [蜂蜜柠檬水] ...

  8. 使用Nginx+Memcache做页面缓存

    前言 官方商城改版之后,为了提升动态页面的访问速度,对商城的一些页面进行了缓存,使其在一定时间之内避免了重复的查询和编译. 原理 主要使用了 nginx 的 memcached_module 模块,直 ...

  9. python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱

    Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24     来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...

最新文章

  1. C++ 双端队列(deque)的使用
  2. 设计模式之外观模式(Facade)摘录
  3. 环境微生物期刊—mBio介绍
  4. linux下的ppp软件,linux下ppp拨号无线上网(示例代码)
  5. leelen可视对讲怎么接线_楼宇对讲系统怎么布线 楼宇对讲系统布线方式【介绍】...
  6. 请求失败或服务器为及时响应,SQLServer(MSSQLSERVER)请求失败或服务未及时响应,有关详细信息,请参见事件日志或其他的适用的错误日志。...
  7. 数据结构和算法———P2 算法概述
  8. 服务器启动显示fr 01,X3850X5服务器无法开机故障处理_微码升级.docx
  9. 炸了炸了~翻译器中的王者,科大讯飞翻译器2.0横空出世!| 钛空智慧星球推荐...
  10. scRNA-seq Course 学习
  11. 滴滴估值630亿美元开启新一轮融资,2021年前上市;索信达新三板退市后二次“流血”冲击香港IPO;蜻蜓FM COO肖轶离职...
  12. 计算机工程科学计算与仿真,BGPLUS实地科研 |中科院|计算机科学、计算机工程:计算机算法与数值建模实训...
  13. c /c++语法之extern关键字
  14. 记2021沙尘漫天的春
  15. Win32gui 无效窗口句柄
  16. Windows XP IIS 500错误
  17. openlayers 地图上加图标_Openlayers 定位,添加自定义图标,点击图标弹框
  18. 隐马尔可夫模型-三个盒子颜色序列概率计算问题
  19. Yolov5—实现目标检测(win10)
  20. 苏州企业申报2019年高新技术企业财务工作如何开展

热门文章

  1. SOA Presentation - SOA概念介绍
  2. Android 8.0 开机动画,RK3326 android10.0(Q) 开机logo+开关机动画替换
  3. OpenCV 图片去水印(不需要自己做水印模板)
  4. 阿里巴巴高效的页面动画解决方案——Ant Motion Design
  5. html css print打印,打印样式
  6. 《程序设计基础》 第五章 函数 6-6 字符金字塔 (15 分)
  7. C/C++基于朋友圈的商品推荐系统
  8. 灰鸽子--木马、后门实验
  9. 你只管善良,剩下交给时间
  10. teredo实现ipv4公网环境下接入ipv6