Nginx 部分 (二) - 基础概念-基本结构、反向代理配置

Nginx配置一套打通:基本概念、命令、反向代理、负载均衡、动静分离、高可用 文章目录一、基本概念1.什么是Nginx2.Nginx特点二、安装、常用命令、配置文件三、配置——反向代理四、配置——负载均衡五、配置——动静分离六、配置——高可用集群七、nginx原理 参考: 尚硅谷教程:这里 博客1:这里 一、基本概念 1.什么是Nginx Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理server。其特点是占有内存少。并发能力强,其并发能力确实在同类型的网页server中表现较好。 http服务器 Web服务器是指驻留于因特网上某种类 阅读详情

基础概念

上一章单纯是为了跑起来,其中的配置是生产环境的配置,如果简单也是可以的,现在结构概念部分;

 

指令和上下文:

nginx的配置文件参照上文,/opt/nginx/conf/nginx.conf 

 

 

①指令 – 可选项,包含名称和参数,以分号结尾

gzip on;  //对响应数据进行Gzip压缩

 

②上下文 – 分块,你可以声明指令 – 类似于编程语言中的作用域

worker_processes 2; # 全局上下文指令     
 
http {              # http 上下文
    gzip on;        # http 上下文中的指令
 
  server {          # server 上下文
    listen 80;      # server 上下文中的指令
  }
}

 

指令类型

 

 

 普通指令:在每个上下文仅有唯一值。而且,它只能在当前上下文中定义一次。子级上下文可以覆盖父级中的值,并且这个

 

覆盖值只在当前的子级上下文中有效。

 

gzip on;
 gzip off; # 非法,不能在同一个上下文中指定同一普通指令2次
 
 server {
   location /downloads {
     gzip off;
   }
 
   location /assets {
     # gzip is on here
   }
 }

 


 数组指令

 

在同一上下文中添加多条指令,将添加多个值,而不是完全覆盖。在子级上下文中定义指令将覆盖给父级上下文中的值。

 

error_log /var/log/nginx/error.log;
error_log /var/log/nginx/error_notive.log notice;
error_log /var/log/nginx/error_debug.log debug;
 
server {
  location /downloads {
    # 下面的配置会覆盖父级上下文中的指令
    error_log /var/log/nginx/error_downloads.log;
  }
}

 

 行动指令

 

行动是改变事情的指令。根据模块的需要,它继承的行为可能会有所不同。

例如rewrite指令,只要是匹配的都会执行

 

server {
  rewrite ^ /foobar;
 
  location /foobar {
    rewrite ^ /foo;
    rewrite ^ /bar;
  }
}

 

如果用户想尝试获取 /sample

 

 

server的rewrite将会执行,从 /sample rewrite 到 /foobar
location /foobar 会被匹配
location的第一个rewrite执行,从/foobar rewrite到/foo
location的第二个rewrite执行,从/foo rewrite到/bar

 

 

return指令提供的是不同的行为:

 

 

 

server {
  location / {
    return 200;
    return 404;
  }
}

上面操作返回200

 

处理请求

在 Nginx 内部,你可以指定多个虚拟服务器,每个虚拟服务器用 server{} 上下文描述,但http只能有一个。

 

server {
  listen      *:80 default_server;
  server_name netguru.co;
 
  return 200 "Hello from netguru.co";
}
 
server {
  listen      *:80;
  server_name foo.co;
 
  return 200 "Hello from foo.co";
}
 
server {
  listen      *:81;
  server_name bar.co;
 
  return 200 "Hello from bar.co";
}

 

 这将告诉 Nginx 如何处理到来的请求。Nginx 将会首先通过检查 listen 指令来测试哪一个虚拟主机在监听给定的 IP 端口组合。然后,server_name指令的值将检测 Host 头(存储着主机域名)。

 

 

Nginx 将会按照下列顺序选择虚拟主机:

 

  1. 匹配sever_name指令的IP-端口主机

  2. 拥有default_server标记的IP-端口主机

  3. 首先定义的IP-端口主机

  4. 如果没有匹配,拒绝连接。

 

 

 

 例如:

 

Request to foo.co:80     => "Hello from foo.co"
 Request to www.foo.co:80 => "Hello from netguru.co"
 Request to bar.co:80     => "Hello from netguru.co"
 Request to bar.co:81     => "Hello from bar.co"
 Request to foo.co:81     => "Hello from bar.co"

 

 

 

 

server_name 指令

 

server_name指令接受多个值。它还处理通配符匹配和正则表达式。

 

server_name netguru.co www.netguru.co; # exact match
  server_name *.netguru.co;              # wildcard matching
  server_name netguru.*;                 # wildcard matching
  server_name  ~^[0-9]*\.netguru\.co$;   # regexp matching

 

当有歧义时,nginx 将使用下面的命令:

 

 

  1. 确切的名字

  2. 最长的通配符名称以星号开始,例如“* .example.org”。

  3. 最长的通配符名称以星号结尾,例如“mail.**”

  4. 首先匹配正则表达式(按照配置文件中的顺序)

 

 

 

 

Nginx 会存储 3 个哈希表:①确切的名字,②以星号开始的通配符,和③以星号结尾的通配符。如果结果不在任何表中,则将按顺序进行正则表达式测试。

 值得谨记的是

 

server_name .netguru.co;


 是一个来自下面的缩写

server_name  netguru.co  www.netguru.co  *.netguru.co;

 

 有一点不同,.netguru.co 存储在第二张表,这意味着它比显式声明的慢一点

 

 

 listen 指令

 在很多情况下,能够找到 listen 指令,接受IP:端口值

 

listen 127.0.0.1:80;
listen 127.0.0.1;    # by default port :80 is used
 
listen *:81;
listen 81;           # by default all ips are used
 
listen [::]:80;      # IPv6 addresses
listen [::1];        # IPv6 addresses

 

 然而,还可以指定 UNIX-domain 套接字。

 

 

listen unix:/var/run/nginx.sock;

 

 

 

 

最小化配置:


 

 

# /opt/nginx/nginx.conf
 
events {}                   # events context needs to be defined to consider config valid
 
http {
 server {
    listen 80;
    server_name  netguru.co  www.netguru.co  *.netguru.co;
 
    return 200 "Hello";
  }
}


页面访问后显示: Hello

 

 

root, location, 和 try_files 指令

root 指令

root 指令设置请求的根目录,允许 nginx 将传入请求映射到文件系统。

 

server {
  listen 80;
  server_name netguru.co;
  root /var/www/netguru.co;
}

根据给定的请求,指定 nginx 服务器允许的内容

netguru.co:80/index.html     # returns /var/www/netguru.co/index.html
netguru.co:80/foo/index.html # returns /var/www/netguru.co/foo/index.html

 

 

 

location 指令

      location指令根据请求的 URI 来设置配置。

 

location [modifier] path

location /foo/ {
  # ...
}

如果没有指定修饰符,则路径被视为前缀,其后可以跟随任何东西。

 

 

以上例子将匹配

/foo
/fooo
/foo123
/foo/bar/index.html
...


此外,在给定的上下文中可以使用多个 location 指令

server {
  listen 80;
  server_name netguru.co;
  root /var/www/netguru.co;
 
  location / {
    return 200 "root";
  }
 
  location /foo/ {
    return 200 "foo";
  }
}

netguru.co:80   /       # => "root"
netguru.co:80   /foo    # => "foo"
netguru.co:80   /foo123 # => "foo"
netguru.co:80   /bar    # => "root"


Nginx 也提供了一些修饰符,可用于连接 location。这些修饰符将影响 location 模块使用的地方,因为每个修饰符都分配了优先级(上至下)。

 

=         	 - Exact match  准确匹配 		①
^~         	 - Preferential match  优先匹配		②
~ && ~*    	 - Regex match  正则匹配		③
no modifier	 - Prefix match	前缀匹配		④

 

 

(Nginx 会先检查精确匹配。如果找不到,我们会找优先级最高的。如果这个匹配依然失败,正则表达式匹配将按照出现的顺序进行测试。至少,最后一个前缀匹配将被使用.)

 

 

 

 

location /match {
  return 200 'Prefix match: matches everything that starting with /match';
}
 
location ~* /match[0-9] {
  return 200 'Case insensitive regex match';
}
 
location ~ /MATCH[0-9] {
  return 200 'Case sensitive regex match';
}
 
location ^~ /match0 {
  return 200 'Preferential match';
}
 
location = /match {
  return 200 'Exact match';
}

/match/    # => 'Exact match'
/match0    # => 'Preferential match'
/match1    # => 'Case insensitive regex match'
/MATCH1    # => 'Case sensitive regex match'
/match-abc # => 'Prefix match: matches everything that starting with /match'

 

try_files 指令

尝试不同的路径,找到一个路径就返回。

 

try_files $uri index.html =404;

所以对于 /foo.html 请求,它将尝试按以下顺序返回文件:

 

$uri ( /foo.html )
index.html
如果什么都没找到则返回 404

 

有趣的是,如果我们在服务器上下文中定义 try_files,然后定义匹配的所有请求的 location —— try_files 将不会执行

这是因为在服务器上下文中定义的 try_files 是它的 pseudo-location(假地址),这是最不可能的位置。因此,定义 location/ 将比 pseudo-location 更具体。

 

server {
  try_files $uri /index.html =404;
 
  location / {
  }
}


因此,应该避免在server 上下文中出现 try_files:

 

server {
  location / {
    try_files $uri /index.html =404;
  }
}

 

 

 

 

 

 

 

tcp_nodelay, tcp_nopush 和 sendfile

 

tcp_nodelay (为了尽可能快地推送数据包)

  起初用于针对Tcp流量冲突和堵塞的问题,Nagle 的算法为了防止通讯被大量的小包淹没,然后采取了限制,只针对比MSS(最大报文长度)小的包,只有当接收方成功将ACK返回,才能进行下次发送,等待期间,发送方可以在此期间缓冲更多的数据之后再进行发送。

在 TCP 通讯中,在发送数据后,需要接收回应包(ACK)来确认数据被成功传达(延时 ACK),延时 ACK 旨在解决线路被大量的 ACK 包拥堵的状况。为了减少 ACK 包的

数量,接收者等待需要回传的数据加上 ACK 包回传给发送方,如果没有数据需要回传,必须在至少每 2 个 MSS,或每 200 至 500 毫秒内发送 ACK(以防我们不再收到包)。

(在这个数据交换过程中,由于 Nagel 和延迟 ACK 之间的死锁,因此引入了 200ms 的延迟)

 

在大多数情况下,我们不会在我们的网站上使用它,因此可以通过添加 TCP_NODELAY 标志来安全地关闭它。(TCP中就会获得200ms的提速)
tcp_nodely on

 

 

 

tcp_nopush(一次性优化数据的发送量)

在发送给客户端之前,它将强制等待包达到最大长度(MSS)。而且这个指令只有在 sendfile 开启时才起作用。

sendfile on;
tcp_nopush on;

看起来 tcp_nopush 和 tcp_nodelay 是互斥的。但是,如果所有 3 个指令都开启了,nginx 会:

 

 

1、确保数据包在发送给客户之前是已满的
2、对于最后一个数据包,tcp_nopush 将被删除 —— 允许 TCP 立即发送,没有 200ms 的延迟

 


sendfile

 

 

 

 

 

正常来说,当要发送一个文件时需要下面的步骤:

 

malloc(3) – 分配一个本地缓冲区,储存对象数据。
read(2) – 检索和复制对象到本地缓冲区。
write(2) – 从本地缓冲区复制对象到 socket 缓冲区。

 

这涉及到两个上下文切换(读,写),并使相同对象的第二个副本成为不必要的。正如所看到的,这不是最佳的方式。值得庆幸的是还有另一个系统调用,提升了发送文件(的效率),它被称为:sendfile(2)(想不到吧!居然是这名字)。这个调用在文件 cache 中检索一个对象,并传递指针(不需要复制整个对象),直接传递到 socket 描述符

 

sendfile(2) 有一些注意事项:

 

1、不可用于 UNIX sockets(例如:当通过你的上游服务器发送静态文件时)
2、能否执行不同的操作,取决于操作系统

 

#打开方式:
sendfile on;

 

 sendfile_max_chunk 512k; # 较大的文件不要一次全读取了,浪费内存,意思是超过512k的文件不用缓存

 

 

 

 

 

反向代理配置:

 

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
          proxy_redirect              off;
          proxy_set_header            Host $host;
          proxy_set_header            X-real-ip $remote_addr;
          proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
   location /{
            root   html;
            index  index.html index.htm;
            proxy_pass  http://baidu.com; //指定请求转发到
    	    proxy_connect_timeout 600;//设置连接超时
	    proxy_read_timeout 600;//设置读响应超时

        }	    proxy_connect_timeout 600;//设置连接超时
	    proxy_read_timeout 600;//设置读响应超时

        }

 

 

 

 

 

 

1、proxy_set_header Host       $host;

$host 时它的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名:

Host参阅地址

 

2、proxy_set_header    X-real-ip $remote_addr;

当你使用了nginx反向服务器后,在web端使用request.getRemoteAddr()(本质上就是获取$remote_addr),取得的是nginx的地址,即$remote_addr变量中封装的是nginx的地址,当然是没法获得用户的真实ip的,但是,nginx是可以获得用户的真实ip的,也就是说nginx使用$remote_addr变量时获得的是用户的真实ip,如果我们想要在web端获得用户的真实ip,就必须在nginx这里作一个赋值操作,如下:
proxy_set_header            X-real-ip $remote_addr;

其中这个X-real-ip是一个自定义的变量名,名字可以随意取,这样做完之后,用户的真实ip就被放在X-real-ip这个变量里了,然后,在web端可以这样获取:
request.getAttribute("X-real-ip")
 

3、proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

 我们先看看这里有个X-Forwarded-For变量,这是一个squid开发的,用于识别通过HTTP代理或负载平衡器原始IP一个连接到Web服务器的客户机地址的非rfc标准,如果有做X-Forwarded-For设置的话,每次经过proxy转发都会有记录,格式就是client1, proxy1, proxy2,以逗号隔开各个地址,由于他是非rfc标准,所以默认是没有的,需要强制添加,在默认情况下经过proxy转发的请求,在后端看来远程地址都是proxy端的ip 。也就是说在默认情况下我们使用request.getAttribute("X-Forwarded-For")获取不到用户的ip,如果我们想要通过这个变量获得用户的ip,我们需要自己在nginx添加如下配置:

proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

意思是增加一个$proxy_add_x_forwarded_for到X-Forwarded-For里去,注意是增加,而不是覆盖,当然由于默认的X-Forwarded-For值是空的,所以我们总感觉X-Forwarded-For的值就等于$proxy_add_x_forwarded_for的值,实际上当你搭建两台nginx在不同的ip上,并且都使用了这段配置,那你会发现在web服务器端通过request.getAttribute("X-Forwarded-For")获得的将会是客户端ip和第一台nginx的ip。

那么$proxy_add_x_forwarded_for又是什么?

  $proxy_add_x_forwarded_for变量包含客户端请求头中的"X-Forwarded-For",与$remote_addr两部分,他们之间用逗号分开。

举个例子,有一个web应用,在它之前通过了两个nginx转发,www.linuxidc.com 即用户访问该web通过两台nginx。
在第一台nginx中,使用

proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

现在的$proxy_add_x_forwarded_for变量的"X-Forwarded-For"部分是空的,所以只有$remote_addr,而$remote_addr的值是用户的ip,于是赋值以赋值以后,

X-Forwarded-For变量的值就是用户的真实的ip地址了。

到了第二台nginx,使用

 

proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;

现在的$proxy_add_x_forwarded_for变量,X-Forwarded-For部分包含的是用户的真实ip,$remote_addr部分的值是上一台nginx的ip地址,于是通过这个赋值

以后,现在的X-Forwarded-For的值就变成了“用户的真实ip,第一台nginx的ip”,这样就清楚了吧。

 

$http_x_forwarded_for变量

这个变量就是X-Forwarded-For,由于之前我们说了,默认的这个X-Forwarded-For是为空的,所以当我们直接使用proxy_set_header    X-Forwarded-For $http_x_forwarded_for

 

时会发现,web服务器端使用request.getAttribute("X-Forwarded-For")获得的值是null。如果想要通过request.getAttribute("X-Forwarded-For")获得用户ip,就必须先使用

proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for ;这样就可以获得用户真实ip。

 

 

 

 

nginx 反向代理配置详解 nginx反向代理配置 阅读详情

相关推荐

Nginx 反向代理基础:Proxy_pass 配置完全指南

本文全面解析Nginx反向代理核心指令proxy_pass的配置与应用。主要内容包括:反向代理基础概念与工作模式、proxy_pass基本配置规则与URI处理机制、代理请求头设置与性能优化参数、负载均衡实现与算法选择。同时深入探讨了高级应用场景如WebSocket代理、安全防护措施、缓存优化策略,并提供了故障排查方法。文章通过配置示例、参数对比表格和图示,系统性地展示了如何构建高效可靠的反向代理服务,适用于不同协议和业务场景的需求。

记录学习的过程 1531

tcp_nopush和tcp_nodelay指令在Nginx中有何作用?

这样做的好处是,你不需要频繁地跑去送玩具,可以节省时间和力气(网络带宽)。但是,如果朋友一直在等你的玩具,而箱子却迟迟没有装满,那他就需要等待更长的时间。但是,如果你有很多玩具要送,那你可能就需要频繁地跑去送,会比较累(消耗更多网络带宽)。想象一下,你有一个大箱子(TCP缓冲区)和一堆小玩具(数据)。每次你想把玩具送给朋友,你可以选择一个个地送,也可以选择等箱子装满了再一起送。就是开启这个“有一个就送”的模式。它通常用于小数据包的传输,比如网页浏览时的请求和响应,因为这样可以更快地响应客户端。

长风破浪会有时的博客 2292

Nginx配置WebSocket反向代理

Nginx配置WebSocket反向代理

ITKidKid的博客 6329

分布式 - 服务器Nginx:基础系列之Nginx静态资源配置优化sendfile | tcp_nopush | tcp_nodelay

三个指令都开启的好处是,sendfile可以开启高效的文件传输模式,tcp_nopush开启可以确保在发送到客户端之前数据包已经充分“填满”, 这大大减少了网络开销,并加快了文件发送的速度。当tcp_nodelay设置为off时,表示禁用TCP_NODELAY选项,Nginx会等待一定时间或者缓冲区填满后再发送数据包,以减少网络传输的次数,提高效率。当tcp_nopush设置为on时,表示启用TCP_CORK选项,Nginx会等待缓冲区填满后再发送数据包,以减少网络传输的次数,提高效率。

你今天真好看呀 2817

一、Nginx简介及其基本结构

一、Nginx简介 1.1 描述 (摘抄自百度百科 20220416) Nginx(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。[12] 其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,ng...

静坐听雨 2649

Nginx反向代理Apache实现动静结合

当今最流行的WEB服务器当属Nginx和Apache了,最近接触了nginx,那么nginx的一大特点就是它本身是一个反向代理服务器,且支持7层负载均衡,相比于apache,nginx对静态内容对处理能力很强,对于动态内容还是apache性能更优,于是我突发奇想使二者结合使用,也即使用Nginx处理静态内容,动态内容反向代理交给Apache处理。    首先需要了解一下什么是反向代理?这个概念貌似...

Toby的博客 1万+

Nginx静态资源优化配置之tcp_nopush和tcp_nodelay

(2)tcp_nopush:该指令必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输'效率' 语法 tcp_nopush on|off; 默认值 tcp_nopush off; 位置 http、server、location (3)tcp_nodelay:该指令必须在keep-alive连接开启的情况下才生效,来提高网络包传输的'实时性' 语法 tcp_nodelay on|off; 默认值 tcp_nodelay on; 位置

Leon_Jinhai_Sun的博客 1万+

Nginx实现反向代理:详细配置与代码注释

Nginx是一款高性能的HTTP和反向代理服务器,常用于负载均衡、缓存、SSL终止、静态内容服务以及作为应用程序的反向代理。本文将详细介绍如何使用Nginx实现反向代理功能,包括基本配置、高级特性以及示例代码和详尽注释,以帮助您全面理解和应用Nginx的反向代理能力。

java专栏 3万+

TCP_NODELAY 和 TCP_NOPUSH

TCP_NODELAY 和 TCP_NOPUSH一、问题的来源今天看到 huoding 大哥分享的 lamp 面试题,其中一点提到了:Nginx 有两个配置项: TCP_NODELAY 和 TCP_NOPUSH ,请说明它们的用途及注意事项。初看到这个题目时,感觉有点印象:1、在nginx.conf 中确实有这两项,记得就是配置on或者off,跟性能有关,但具体如何影响性能不...

weixin_34177064的博客 612

2019年数学建模美赛经验总结

北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 目录 1、基本情况 2、选题 3、分工合作 4、论文写作 5、建模 6、编程 7、入门资源 ...

Smallactive 7万+

IEDA激活码失效?教你5分钟快速续期的方法

本文针对IEDA激活码失效问题,提供了一套从快速应急到深度排查的完整解决方案。文章不仅详解了5分钟快速续期与清理缓存等应急方法,更深入剖析了授权机制、离线激活流程,并指导如何构建可持续的授权管理策略,帮助开发者彻底解决激活困扰,确保开发环境稳定。

a0b1c2d3的专栏 274

Nginx配置——反向代理

Nginx

scorpio的博客 31万+

Mann-Kendall检验全解析:从原理到11种变体及Python实现

本文全面解析Mann-Kendall检验,从基础原理到应对自相关、季节性等复杂数据的11种关键变体,如Hamed-Rao修正、季节性MK和趋势自由预白化(TFPW)。详细阐述各方法的适用场景与数学原理,并提供完整的Python实战代码,帮助研究者针对不同数据特性选择最稳健的趋势分析方法。

weixin_29050271的博客 459

Nginx-反向代理详解

Nginx 是一个高性能的开源 Web 服务器和反向代理服务器。它具有轻量级、高并发、低内存消耗等特点,被广泛用于搭建静态资源服务器、负载均衡、反向代理等场景。本文介绍nginx的反向代理,其他内容敬请期待!反向代理是一种代理服务器的配置模式,它代表服务器向客户端提供服务。客户端发送请求到反向代理服务器,然后反向代理服务器将请求转发到后端的真实服务器上,并将响应返回给客户端。简单理解为用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理​。

Wzill 8万+

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

王老师青少年编程 1616

Altium Designer(AD24/25)如何在PCB设计阶段做阻抗匹配

目前阻抗匹配多直接有制版厂进行,PCB设计师在设计阶段可不关注阻抗设计,在加工阶段只需标注需要控制的阻抗线,制板厂即可按照要求对阻抗线进行调整和控制。但是对于设计师来讲掌握阻抗线的设计方法也是非常必要的。本文介绍Altium Designer(AD24/25)如何在PCB设计阶段做阻抗匹配。

fydar的博客 894

Nginx-基本概念及配置

Nginx简介 概述 一个高性能的HTTP和反向代理web服务器 特点是占有内存少,并发能力强 专为性能优化而开发 反向代理 正向代理 在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问 反向代理 把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端 此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址 负载均衡 动静分离 为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解

BNMZY的博客 5939

西南科技大学模拟电子技术实验二(二极管特性测试及其应用电路)预习报告

3、用二极管正向虚拟IV仪测出数据,并记录数据于虚表3和虚表4。1、按照指导书multisim仿真软件上画出三种模型电路图,1、按照指导书multisim仿真软件上画出三种模型电路图,1、按照指导书multisim仿真软件上画出三种模型电路图,表6 二极管三种模型参数测试表(电源电压=1.2V)2、用万用表测出数据,并记录数据于虚表1和虚表2。2、用万用表测出数据,并记录数据于虚表5和虚表6。表5 二极管三种模型参数测试表(电源电压=12V)二极管三种模型参数测试表(电源电压=12V)

Welcome To My6n Blog 4082

Nginx配置详解: 从基础入门到高级实战的全面指南

在 Web 服务架构中,Nginx 以其卓越的高性能、高并发处理能力和灵活的配置特性,成为众多开发者和企业的首选 Web 服务器与反向代理工具。无论是静态资源服务、反向代理转发,还是负载均衡、安全防护,Nginx 都能通过合理的配置轻松实现。然而,Nginx 的配置语法相对复杂,不同模块与指令的组合使用方式多样,这也让不少初学者望而却步。本文我将从 Nginx 配置的基本结构出发,逐步深入到高级配置实践,并结合实际案例,帮你全面掌握 Nginx 配置的核心要点与技巧。

aa_hdkf_vg的博客 5731

18、项目运行与调试全攻略

本文详细介绍了在IntelliJ IDEA中进行项目运行与调试的完整流程,涵盖运行配置的创建与管理、临时配置的使用与保存、运行窗口的控制台操作及多程序并行运行的处理。同时,讲解了如何通过调试器定位和修复语法错误、运行时错误及逻辑错误,并结合ACME项目演示了第三方库Log4J的集成方法和命令行客户端的功能改进。文章还提供了调试流程图,帮助开发者系统掌握IDEA的强大调试功能,提升开发效率与代码质量。

svm4gardener的博客 76

AUTOSAR从入门到精通-【应用实战篇】车载HMI-ADAS

ADAS是高级驾驶辅助系统(Advanced Driving Assistance System)简称ADAS。ADAS高级驾驶辅助系统是利用安装于车上的各式各样的传感器, 在第一时间收集车内外的环境数据, 进行静、动态物体的辨识、侦测与追踪等技术上的处理, 从而能够让驾驶者在最快的时间察觉可能发生的危险, 以引起注意和提高安全性的主动安全技术。

lin_xiu的博客 1435

【Nginx配置入门】----反向代理

我们在前端开发的过程中,在对接口时候,往往需要跨域请求,那么及其简便的方法就是使用nginx反向代理

qq_26780317的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Nginx-05-nginx 反向代理是什么?windows 下如何配置使用 nginx

nginx 是一种高性能的反向代理服务器软件,它支持多种协议,包括 HTTP、HTTPS、SMTP、POP3 等,可以用于代理 Web 应用、电子邮件系统、FTP 服务器等各种网络服务。此外,反向代理还可以通过负载均衡来提高服务器的性能和可靠性,将请求分发到不同的后端服务器上,避免单个服务器负载过高而导致服务不可用。综上所述,反向代理是一个非常有用的服务器架构模式,可以提高服务器的性能、可用性和安全性,并为服务器的功能扩展提供了便利。缓存:反向代理可以缓存一些经常请求的资源,从而减少后端服务器的负载。

1999

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

[转]Nginx配置——反向代理

其他话不多说,下面来学习一下的反向代理。如果没有和环境,可以参考前两篇文章。VirtualBox安装Centos7在Centos7下安装Nginx在介绍反向代理之前,先来了解一下正向代理。正向代理:如果把局域网外的想象成一个巨大的资源库,则局域网中的客户端要访问,则需要通过代理服务器来访问,这种代理服务就称为正向代理,下面是正向代理的原理图。由于工作环境原因,日常工作只能局限于单位的局域网,如果想要访问互联网,怎么办呢?这就需要用到正向代理,本人经常用正向代理来进行上网。 反向代理:看下面原理图,就一目了

jiaoqi6132的博客 5802

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Nginx配置反向代理及基本参数解释说明

通常情况下,客户端向Web服务器发送请求,Web服务器响应请求并返回数据。而在反向代理中,客户端的请求不直接发送到Web服务器,而是发送到反向代理服务器。反向代理服务器会将请求转发给真实的Web服务器,Web服务器响应请求并将数据返回给反向代理服务器,反向代理服务器再将数据返回给客户端。客户端认为它正在与反向代理服务器通信,但实际上是与真实的Web服务器通信。使用反向代理可以带来以下优点:负载均衡:反向代理服务器可以将请求分发到多台真实的Web服务器,从而实现负载均衡,避免单个服务器被过度负载。

鹏鹏2077 6466
上一篇: Nginx 部分 (一) 简单概念与安装配置
下一篇: Nginx 部分 (三) - 性能管理-配置解析
CoffeeAndIce
博客等级 码龄9年 191粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值