一、web服务器与web框架

1、web服务器简介


Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,
最终用于提供服务程序的Web服务器会通过 HTTP(超文本传输协议)或 HTTPS(安全超文本传输协议)把请求的内容传送给用户。

目前能够提供 Web 网络服务的程序有 IIS、Nginx 和 Apache 等。
其中,IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序
Nginx 程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,
Nginx 最被认可的是系统资源消耗低且并发能力强,因此得到了国内诸如新浪、 网易、腾讯等门户站的青睐。

web服务器和web框架的关系
web服务器(nginx):接收HTTP请求(例如:www.baidu.com)并返回数据
web框架(django,flask):开发web应用程序,处理接收到的数据

二、Nginx安装详解

1、nginx介绍

nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。
nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问效率。
nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,以及缓存服务使用。

总的来说nginx:
  支持高并发,能支持几万并发连接
  资源消耗少
  可以做http反向代理和负载均衡
  支持异步网络i/o事件模型epoll

偷偷告诉你Tengine:
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

2、编译安装

  1. 1. 下载依赖
  2. yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
  3.  
  4. 2.下载源码包
  5. cd /opt/
  6. wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
  7.  
  8. 3.解压缩源码
  9. tar -zxvf nginx-1.12.0.tar.gz
  10.  
  11. 4.配置,编译安装
  12. cd nginx-1.12.0
  13. ./configure --prefix=/opt/nginx1.12/
  14. make && make install
  15.  
  16. 5.启动nginx进入sbin目录,找到nginx启动命令
  17. cd /opt/nginx1.12
  18. cd sbin
  19. ./nginx # 启动
  20. ps -ef|grep nginx # 查看nginx是否已经启动
  21.  
  22. ./nginx -s stop # 关闭
  23. ./nginx -s reload # 平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置

3、分析nginx的工作目录

  1. 1. 查看工作目录
  2. cd /opt/nginx1.12/
  3. ls # 目录如下
  4. client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp
  5.  
  6. 2. 目录分析
  7. conf 存放nginx所有配置文件的目录,主要nginx.conf,是控制nginx所有功能的文件
  8. html 存放nginx默认站点的目录,如index.htmlerror.html
  9. logs 存放nginx默认日志的目录,如error.log access.log
  10. sbin 存放nginx主命令的目录,sbin/nginx

4、nginx.conf配置文件解析

  1. # Nginx运行的work进程数量(建议与CPU数量一致或auto)
  2. worker_processes 1;
  3.  
  4. # Nginx错误日志存放路径
  5. #error_log logs/error.log;
  6. #error_log logs/error.log notice;
  7. #error_log logs/error.log info;
  8.  
  9. # Nginx服务运行后产生的pid进程号
  10. #pid logs/nginx.pid;
  11.  
  12. # 事件连接数
  13. events {
  14. worker_connections 1024;
  15. }
  16.  
  17. # http代码块,是控制nginx核心功能的代码块
  18. # 公共的配置定义在http{},用的是c语言的语法
  19. http {
  20. include mime.types;
  21. default_type application/octet-stream;
  22.  
  23. # 定义nginx的访问日志功能
  24. # nginx会有一个accses.log功能,查看用户访问的记录
  25. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  26. '$status $body_bytes_sent "$http_referer" '
  27. '"$http_user_agent" "$http_x_forwarded_for"';
  28. # 开启accses.log功能(记录日志,会记录下remote_addr--请求的ip,remote_user--请求的用户等信息)
  29. access_log logs/access.log main;
  30.  
  31. sendfile on;
  32.  
  33. keepalive_timeout 65;
  34.  
  35. # 开启gzip压缩传输(在传输图片视频等资源的时候进行压缩)
  36. gzip on;
  37.  
  38. # server代码块是定义nginx的虚拟主机
  39. server {
  40. # 定义nginx的访问入口端口,访问地址就是:你的服务器ip:80
  41. listen 80;
  42.  
  43. # 定义网站的域名
  44. # 如果没有域名,就填写服务器的ip地址
  45. server_name 192.168.3.16;
  46.  
  47. # location定义nginx的路径匹配(最低级的匹配)
  48. # 就是说只要来自于192.168.3.16这个server_name的请求,都会走到这个location
  49. # 比如访问:192.168.3.16/ 就会去/opt/nginx1.12/html目录下找index.html
  50. location / {
  51. # 这个root参数,是关键字,定义网页的根目录
  52. # 以nginx安装的目录为相对路径,那么这里的html目录的路径就是:/opt/nginx1.12/html
  53. # 可以自由修改这个root定义的网页根目录(这里的html是目录)
  54. root html;
  55.  
  56. # index参数定义网站的首页文件名,默认的文件名
  57. index index.html index.htm;
  58. }
  59. # 错误页面的优化
  60. # /40x.html 这里的 / 代表的是上面loction 的 / 也就是 root 指定的 html目录
  61. # 意思就是出现以下错误码的时候,就去访问/opt/nginx1.12/html/40x.html页面
  62. error_page 400 401 402 403 404 /40x.html;
  63.  
  64. # 跟上面的同理,访问的是/opt/nginx1.12/html/50x.html
  65. error_page 500 502 503 504 /50x.html;
  66. location = /50x.html {
  67. root html;
  68. }
  69.  
  70. }
  71. }

5、location语法详解

大类型可以分为三种:

  location = patt {} [精准匹配]

  location patt {}     [普通匹配]

  location ~ patt {}  [正则匹配]

1. 具体的 location 后面跟的匹配符

匹配符 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 4
!~ 区分大小写不匹配的正则 5
!~* 不区分大小写不匹配的正则 6
/ 通用匹配,任何请求都会匹配到 7

2. 示例

  1. server {
  2.  
  3. listen 80;
  4.  
  5. server_name zzbj;
  6.  
  7. # 精准匹配,浏览器输入:http://zzbj/index.html,定位到服务器上的 /opt/project/html/index.html文件
  8. location =/index.html {
  9.  
  10. root /opt/project/html; # 这里是绝对路径
  11. index index.html;
  12.  
  13. }
  14.  
  15. # 普通匹配,浏览器输入:http://zzbj,定位到服务器上的/opt/nginx1.12/html/default.html文件
  16. location / {
  17.  
  18. root html; # 这里是相对路径,即相对于nginx安装的目录,我的nginx安装在/opt/nginx1.12
  19.  
  20. index default.html;
  21.  
  22. }
  23.  
  24. # 正则匹配,浏览器输入:http://zzbj/image..,定位到/opt/project/image/image.html
  25. location ~ image {
  26.  
  27. root /opt/project/image;
  28.  
  29. index image.html;
  30. }
  31. }
  1. server {
  2. listen 80;
  3. server_name heiheihei.com;
  4.  
  5. #优先级1,精确匹配,根路径
  6. location = / {
  7. return 400;
  8. }
  9.  
  10. #优先级2,以a开头的,优先匹配这里,区分大小写
  11. location ^~ /a {
  12. root /data/a/;
  13. }
  14.  
  15. #优先级3,区分大小写的正则匹配,匹配/media*****路径
  16. location ~ /media {
  17. alias /data/static/;
  18. }
  19.  
  20. #优先级4 ,不区分大小写的正则匹配,所有的****.jpg|gif|png 都走这里
  21. location ~* .*\.(jpg|gif|png|js|css)$ {
  22. root /data/a/;
  23. }
  24.  
  25. #优先7,通用匹配
  26. location / {
  27. return 403;
  28. }
  29. }

3. root和alias区别

  1. nginx指定文件路径有rootalias两种方法
  2. 区别在方法和作用域:
  3. root
  4. 语法 root 路径;
  5. 默认值 root html;
  6. 配置块 http{} server {} location{}
  7.  
  8. alias
  9. 语法: alias 路径
  10. 配置块 location{}
  11.  
  12. rootalias区别在nginx如何解释location后面的url,这会使得两者分别以不同的方式讲请求映射到服务器文件上
  13.  
  14. root参数是root路径+location位置
  15. root实例:
  16. location ^~ /a {
  17. root /data/a; 注意这里可有可无结尾的 /
  18. }
  19. 请求urlheiheihei.com/a/index.html
  20. web服务器会返回服务器上的/data/a/a/index.html
  21.  
  22. root实例2
  23. location ~* .*\.(jpg|gif|png|js|css)$ {
  24. root /data/static/;
  25. }
  26. 请求urlheiheihei.com/beautiful.gif
  27. web服务器会返回服务器上的/data/static/beautiful.gif
  28.  
  29. alias参数是使用alias路径替换location路径
  30. alias是一个目录的别名
  31. 注意alias必须有 "/" 结束!
  32. alias只能位于location块中
  33.  
  34. alias实例:
  35. location ^~ /a {
  36. alias /data/static/;
  37. }
  38. 请求urlheiheihei.com/a/index.html
  39. web服务器会返回服务器上的/data/static/index.html

6、配置404错误页面

  1. 1. 进入配置目录
  2. cd /opt/nginx1.12/html/
  3.  
  4. 2. 新建40x页面
  5. touch 40x.html
  6.  
  7. 3. 编写页面
  8. vim 40x.html
  9. 百度一个即可
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4.  
  5. <title>404-对不起!您访问的页面不存在</title>
  6.  
  7. <style type="text/css">
  8.  
  9. .head404{ width:580px; height:234px; margin:50px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/head404.png) no-repeat; }
  10.  
  11. .txtbg404{ width:499px; height:169px; margin:10px auto 0 auto; background:url(https://www.daixiaorui.com/Public/images/txtbg404.png) no-repeat;}
  12.  
  13. .txtbg404 .txtbox{ width:390px; position:relative; top:30px; left:60px;color:#eee; font-size:13px;}
  14.  
  15. .txtbg404 .txtbox p {margin:5px 0; line-height:18px;}
  16.  
  17. .txtbg404 .txtbox .paddingbox { padding-top:15px;}
  18.  
  19. .txtbg404 .txtbox p a { color:#eee; text-decoration:none;}
  20.  
  21. .txtbg404 .txtbox p a:hover { color:#FC9D1D; text-decoration:underline;}
  22.  
  23. </style>
  24. </head>
  25. <body bgcolor="#494949">
  26. <div class="head404"></div>
  27. <div class="txtbg404">
  28. <div class="txtbox">
  29. <p>对不起,您请求的页面不存在、或已被删除、或暂时不可用</p>
  30.  
  31. <p class="paddingbox">请点击以下链接继续浏览网页</p>
  32.  
  33. <p><a style="cursor:pointer" onclick="history.back()">返回上一页面</a></p>
  34. </div>
  35. </div>
  36. </body>
  37. </html>

404页面

  1.  
  1. 4. 重启nginx
  2. /opt/nginx1.12/sbin/nginx # 开启nginx
  3. /opt/nginx1.12/sbin/nginx -s reload # 重启
  4. /opt/nginx1.12/sbin/nginx -s stop # 停止

三、nginx多虚拟主机和常用的几个功能

1、多虚拟机概念

虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个站点使用各自的硬盘空间,由于省资源,省钱,众多网站都使用虚拟主机来部署网站。

虚拟主机的概念就是在web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。
这个独立的站点配置是在nginx.conf中使用server{}代码块标签来表示一个虚拟主机。
Nginx支持多个server{}标签,即支持多个虚拟主机站点。

虚拟主机类型:
  基于域名的虚拟主机
    通过不同的域名区分不同的虚拟主机,是企业应用最广的虚拟主机。

  基于端口的虚拟主机
    通过不同的端口来区分不同的虚拟主机,一般用作企业内部网站,不对外直接提供服务的后台。

  基于IP的虚拟主机
    通过不同的IP区分不同的虚拟主机,此类比较少见,一般业务需要多IP的常见都会在负载均衡中绑定VIP

2、多虚拟机配置步骤

  1. 1. 新建两个工作目录
  2. cd /opt/nginx1.12/
  3. mkdir jd
  4. mkdir tb
  5.  
  6. 2. 修改配置文件
  7. vim /opt/nginx1.12/conf/nginx.conf
  8.  
  9. 配置文件添加如下虚拟主机
  10. server {
  11. listen 80;
  12. server_name myjd.com;
  13. location / {
  14. root jd;
  15. index index.html index.htm;
  16. }
  17. error_page 404 /40x.html;
  18. error_page 500 502 503 504 /50x.html;
  19. }
  20.  
  21. server {
  22. listen 80;
  23. server_name mytb.com;
  24. location / {
  25. root tb;
  26. index index.html;
  27. }
  28. error_page 404 /40x.html;
  29. error_page 500 502 503 504 /50x.html;
  30. }
  31.  
  32. 注意:如果你所有虚拟主机都使用同一个404页面,你可以把
  33. error_page 404 /40x.html; 这段代码放到跟 server外面同级的位置即可
  34.  
  35. 3. jdtb目录下新建index.html文件
  36. vim /opt/nginx1.12/jd/index.html # 自己随便写点东西测试
  37. vim /opt/nginx1.12/tb/index.html
  38.  
  39. /opt/nginx1.12/sbin/nginx -t # 测试你刚才写的内容有没有错误
  40.  
  41. 4.重启nginx,加载新的配置
  42. /opt/nginx1.12/sbin/nginx -s reload
  43.  
  44. 5.修改windows的本地hosts解析文件,用于域名解析
  45. windowshosts文件路径
  46. C:\Windows\System32\drivers\etc
  47.  
  48. 写入如下配置
  49. 你服务器的ip myjd.com
  50. 你服务器的ip mytb.com
  51.  
  52. 6.windows浏览器中,查看两个域名对应到的虚拟主机
  53. 分别访问myjd.com 域名和mytb.com 域名,查看网站的资料的内容变化

3、开启日志

  1. 1. 配置方式
  2. 修改nginx.conf配置文件,打开如下配置注释(默认是被注释了的)
  3. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  4. '$status $body_bytes_sent "$http_referer" '
  5. '"$http_user_agent" "$http_x_forwarded_for"';
  6.  
  7. # 开启日志功能
  8. access_log logs/access.log main;

4、拒绝访问功能

  1. nginx拒绝访问功能使用 deny 关键字
  2. 在某一个虚拟主机下,定义一个deny参数,可以拒绝deny指定的ip地址对该虚拟主机的访问
  3. server {
  4. listen 80;
  5. server_name myjd.com;
  6. #禁止192.168.3.16这个ip访问myjd.com
  7. location / {
  8. deny 192.168.11.0/24;
  9. root jd;
  10. index index.html index.htm;
  11. }
  12. error_page 404 /40x.html;
  13. error_page 500 502 503 504 /50x.html;
  14. location = /50x.html {
  15. root html;
  16. }
  17. }

四、nginx反向代理

1、代理是什么

2、配置nginx的反向代理

  1. 1.实验准备,准备2nginx机器
  2. 机器1 192.168.3.16 用作web应用,数据返回
  3. 机器2 192.168.3.115 用作nginx反向代理服务器
  4.  
  5. windows中访问代理服务器,然后让代理服务器去拿web应用的数据
  6.  
  7. windows > 192.168.3.115 > 192.168.3.16
  8.  
  9. windows < 192.168.3.115 < 192.168.3.16
  10.  
  11. 2.准备机器1(web应用),只是对数据页面的一个返回
  12. server {
  13. listen 80;
  14. server_name 192.168.3.16;
  15.  
  16. #charset koi8-r;
  17. location / {
  18. root html;
  19. index index.html index.htm;
  20. }
  21. }
  22.  
  23. 3.准备机器2,用作nginx的反向代理服务器,这个机器不存数据,只转发请求
  24. server {
  25. listen 80;
  26. server_name 192.168.3.115;
  27. # 在这里进行反向代理配置
  28. location / {
  29. proxy_pass http://192.168.3.16;
  30. # root html;
  31. # index index.html index.htm;
  32. }
  33. }
  34.  
  35. 4. 测试
  36. 你可以把两个服务器的日志功能都打开,都输入命令:tail -f logs/access.log 进行检测
  37. 然后你打开windows的浏览器,访问192.168.3.115,会发现最后显示的是192.168.3.16的内容
  38. 访问:windows浏览器 --> 192.168.3.115 --> 192.168.3.16
  39. 结果:192.168.3.16 --> 192.168.3.115 --> windows浏览器

五、nginx的负载均衡

1、什么是负载均衡

nginx的负载均衡,顾名思义,就是压力分担,试想一下,如果你的网站很受欢迎,每天都有几十万人访问,
但是你只有一台服务器,那么你的服务器是处理不了那么多的请求的,甚至会挂掉,服务器一挂,你的网站就访问不了了,
那么久而久之你的网站还有人去吗,人一多就访问不了。

就比如,百度,每天那么多人去访问,你见过百度的网站访问不了吗,百度肯定会有成千上万台服务器一起协同工作,分担压力的,
不然只有一台机器肯定承受不了那么大的压力的。

2、优点

  1. 1.集群是什么
  2. 一堆服务器做一件事
  3.  
  4. 2.集群性能很高
  5. 比如:淘宝本来的核心支付服务器是小型机,非常昂贵,且难以维护
  6. 后来都将服务器更换为集群架构
  7. 一堆便宜的服务器,维护者一个功能运转
  8.  
  9. 3.高可用性
  10. 单点机器很可能down
  11. 集群单机机器down机,不会影响整体的运转

3、利用nginx实现负载均衡

Nginx要实现负载均衡需要用到proxy_pass代理模块配置
Nginx负载均衡与Nginx代理不同地方在于:
  Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池
  Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用

  1. 1.准备三台机器
  2. nginx.conf配置如下:
  3.  
  4. 机器1:作为nginx的负载均衡器 192.168.3.158
  5.  
  6. # 定义nginx负载均衡池,用关键字upstream定义,里面默认是轮训算法
  7. # 也可以用weight 权重算法
  8. # 也可以用ip_hash 算法
  9. # upstream定义负载均衡池的关键字 nginx_pools是变量名(什么都可以)
    # server是要代理的服务器ip
  10. upstream nginx_pools {
  11. server 192.168.3.16;
  12. server 192.168.3.115;
  13. }
  14. server {
  15. listen 80;
  16. server_name 192.168.3.158;
  17.  
  18. #charset koi8-r;
  19.  
  20. #access_log logs/host.access.log main;
  21.  
  22. # 在这里进行负载均衡代理配置
  23. location / {
  24. proxy_pass http://nginx_pools;
  25. }
  26. }
  27.  
  28. 机器2 准备nginx 返回页面数据 192.168.3.16
  29. server {
  30. listen 80;
  31. server_name 192.168.3.16;
  32. location / {
  33. root html;
  34. index index.html index.htm;
  35. }
  36. error_page 404 /40x.html;
  37. error_page 500 502 503 504 /50x.html;
  38. location = /50x.html {
  39. root html;
  40. index index.html index.htm;
  41. }
  42. }
  43.  
  44. 机器3 也准备nginx 返回页面数据 192.168.3.115
  45. server {
  46. listen 80;
  47. server_name 192.168.3.115;
  48.  
  49. #charset koi8-r;
  50.  
  51. #access_log logs/host.access.log main;
  52.  
  53. location / {
  54. root html;
  55. index index.html index.htm;
  56. }
  57. }
  58.  
  59. 2.分别启动三台机器,三个nginx服务
  60.  
  61. 3.windows中访问负载均衡器的地址,查看请求分发,
  62. 访问 192.168.11.158
  63.  
  64. 4. 如果想捉到爬虫的真实客户端的ip地址,就得如下配置
  65. location / {
  66. #加上这2个参数,可以查看到用户的真实ip,也就是windows客户端的地址
  67. proxy_set_header X-Real-IP $remote_addr;
  68. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  69. proxy_pass http://nginx_pools;
  70. }

4、upstream分配策略

  1. 1. 轮询(默认的策略)
  2. 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
  3.  
  4. 2. weight 权重
  5. upstream nginx_pools {
  6. server 192.168.3.16 weight=100; # 这个地址的访问比率就会大于下面那个
  7. server 192.168.3.115 weight=20;
  8.  
  9. 3. ip_hash
  10. 每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器
  11. upstream nginx_pools {
  12. ip_hash;
  13. server 192.168.3.16;
  14. server 192.168.3.115;
  15. }
  16.  
  17. 4. backup
  18. 在非backup机器繁忙或者宕机时,请求backup机器,此机器默认压力最小
  19. upstream nginx_pools {
  20. server 192.168.3.16;
  21. server 192.168.3.115;
  22. server 192.168.10.11 backup;
  23. }

六、好玩的Linux屏保

  1. 1.下载屏保软件源码包
  2. cd /opt
  3. wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
  4.  
  5. 2.解压缩源码包
  6. tar -zxvf cmatrix-1.2a.tar.gz
  7.  
  8. 3.进入源码包目录
  9. cd cmatrix-1.2a/
  10.  
  11. 4.释放编译文件
  12. ./configure --prefix=/opt/cmatrix/
  13.  
  14. 5.编译且安装
  15. make && make install
  16.  
  17. 6.进入安装屏保软件的目录
  18. cd /opt/cmatrix/
  19.  
  20. 7.执行屏保命令
  21. ./bin/cmatrix

nginx之安装、多虚拟主机、反向代理和负载均衡的更多相关文章

  1. debian+nginx配置初探--php环境、反向代理和负载均衡

    配置nginx的PHP环境 安装nginx sudo apt-get install nginx 安装nginx就可以通过下面地址来访问了:http://localhost/ 安装php sudo a ...

  2. 在windows环境下 nginx + .net core 3.1 实现反向代理和负载均衡

    一.创建.net core web 应用 1.首先打开vs2019创建好.net core web应用,简单的注入IConfiguration 便于打印端口号展示效果. 1 private reado ...

  3. nginx基于域名的虚拟主机 反向代理配置实例

    vi /etc/nginx/conf.d/safeadmin.xxx.com.conf: server { listen 80; server_name safeadmin.xxxx.com; loc ...

  4. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  5. Nginx服务器 之反向代理与负载均衡

    一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...

  6. nginx反向代理、负载均衡以及分布式下的session保持

    [前言]部署服务器用到了nginx,相比较于apache并发能力更强,优点也比其多得多.虽然我的项目可能用不到这么多性能,还是部署一个流行的服务器吧! 此篇博文主要学习nginx(ingine x)的 ...

  7. nginx配置虚拟主机、反向代理和负载均衡

    为了实现这个功能,需要修改nginx的配置文件,将nginx.conf清理一下,使结构更清晰. worker_processes ; events { worker_connections ; } h ...

  8. nginx 虚拟主机+反向代理+负载均衡

    nginx是一款免费.开源的http服务器,它是由俄罗斯程序设计师开发的,官方测试,nginx能支撑5万的并发量,主要功能有虚拟主机.反向代理和负载均衡等. nginx配置 # 全局块 ... # e ...

  9. [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...

随机推荐

  1. vue webpack配置Error

    学写慕课网的Vue核心技术Vue+Vue-Router+Vuex+SSR实战精讲时,发现因为webpack,babel等升级了.按照视频的代码配置webpack会出问题. 报错:TypeError: ...

  2. eclipse自定义工作区列表

    打开eclipse,在菜单栏上找到Window,点击Window--->Perspective--->Customize Perspective...,会看到 弹出来的一个窗口,然后点击最 ...

  3. 小tips:path的join和resolve的使用区别

    1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以连接任意多个路径字符串.要连接的多个路径可做为参数传入. path.join()方法在 ...

  4. H5的语义化标签(PS: 后续继续补充)

    头部信息 <header></header> 区块标签 <figure> <figcaption>123</figcaption> < ...

  5. 简易仿ios菊花加载loading图

    原文链接:https://mp.weixin.qq.com/s/wBbQgOfr59wntNK9ZJ5iRw 项目中经常会用到加载数据的loading显示图,除了设计根据app自身设计的动画loadi ...

  6. FragmentActivity + Fragment + Fragment使用过程中出现的bug

    FragmentActivity + Fragment(通过hide和show来显示fragment) + Fragment(通过viewpager来显示fragment) 在Activity中 // ...

  7. Android + https 实现 文件上传

    package com.example.wbdream.zigvine; import android.annotation.SuppressLint; import android.app.Acti ...

  8. 高版本Sqlserver数据库导入低版本Sqlserver

    今天想跑一个关于java网站的demo,结果在附加数据库项这一块出现问题,例程的数据库用的是sqlserver2014,而我的是2008,添加数据库出现错误.经过一番查找,也找到某人写的一些博客上的解 ...

  9. bug优先级别

    https://www.cnblogs.com/evablogs/p/6785083.html bug缺陷的优先级别 首先需要对一个版本进行冒烟测试,确定基本功能测试,如果不通过的话进行后期的测试已经 ...

  10. Asp.Net登陆记住用户功能实现

    1.效果和原理 原理是利用Asp.net的Cookies.选中CheckBox,把输入的用户名和密码用Cookies存储起来,设置过期时间7天,超过时间自动清除Cookie信息. 2.前台代码 < ...