nginx代理

  

示意图
# https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/pic.md
Nginx正向代理
# https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/z_proxy.md
Nginx反向代理https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/f_proxy.md

# #缓冲和缓存https://coding.net/u/aminglinux/p/nginx/git/blob/master/proxy/bu_ca.md

  

 nginx代理

  

 nginx代理

  

 nginx代理

  

 nginx代理

  

Nginx正向代理配置

  

Nginx正向代理使用场景并不多见。
需求场景1:
如果在机房中,只有一台机器可以联网,其他机器只有内网,内网的机器想用使用yum安装软件包,在能能联网的机器上配置一个正向代理即可。

  

Nginx正向代理配置文件

  

服务器{
听80 default_server;
解析器119.29.29.29;位置
/
{
proxy_pass http://主机request_uri美元;
}
}

  

Nginx正向代理配置执行说明

  
 <代码>解析器代码 之前
  

语法:解析器地址;

  

地址为DNS服务器的地址,国内通用的DNS 119.29.29.29为dnspod公司提供。国际通用DNS 8.8.8.8或者8.8.4.4为谷歌提供。
其他可以参考http://dns.lisect.com/

  

示例:解析器119.29.29.29;

  
 <代码> default_server  
  

之所以要设置为默认虚拟主机,是因为这样就不用设置server_name了,任何域名解析过来都可以正常访问。

  
 <代码> proxy_pass  
  

该指令用来设置要代理的目标url,正向代理服务器设置就保持该固定值即可。关于该指令的详细解释在反向代理配置中。

  

我们线上用到的正向代理proxy_pass后面加的是一个具体的接口地址,内网环境只用来访问这个内网地址如下图

  

 nginx代理

  

Nginx反向代理配置

  

Nginx反向代理在生产环境中使用很多的。

  

场景1:
域名没有备案,可以把域名解析到香港一台云主机上,在国外云主机做个代理,而网站数据是在大陆的服务器上。

  

示例1:服务器

{
听80;
server_name aminglinux.com;

  
/<代码>位置
  {
  proxy_pass http://123.23.13.11/;
  proxy_set_header主机主机美元;
  proxy_set_header X-Real-IP remote_addr美元;
  proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
  } 
  

}   

配置说明

  
      <李> proxy_pass李   
  

在正向代理中,已经使用过该指令。
格式很简单:proxy_pass URL;
其URL中包含:传输协议(http://, https://等),主机名(域名或者IP:端口),uri。

  

示例如下:
proxy_pass http://www.aminglinux.com/, http://192.168.200.101:8080
proxy_pass/uri;
proxy_pass unix:/tmp/www.sock;

  

对于proxy_pass的配置有几种情况需要注意。
示例2:
位置/摘要/
{
proxy_pass http://192.168.1.10;
,
}

  

示例3:
位置/摘要/
{
proxy_pass http://192.168.1.10/;
,
}

  

示例4:
位置/摘要/
{
proxy_pass http://192.168.1.10/linux/;
,
}

  

示例5:
位置/摘要/
{
proxy_pass http://192.168.1.10/linux;
,
}

  

假设server_name为www.aminglinux.com
当请求http://www.aminglinux.com/aming/a.html的时候,以上示例2 - 5分别访问的结果是

  

示例2:http://192.168.1.10/aming/a.html

  

示例3:http://192.168.1.10/a.html

  

示例4:http://192.168.1.10/linux/a.html

  

示例5:http://192.168.1.10/linuxa.html

  

 nginx代理

     <李> proxy_set_header李      

proxy_set_header用来设定被代理服务器接收到的头信息。

  

语法:proxy_set_header字段值;
字段为要更改的项目,也可以理解为变量的名字,比如主机
价值为变量的值

  

如果不设置proxy_set_header,则默认主人的值为proxy_pass后面跟的那个域名或者的IP(一般写IP),
比如示例4,请求到后端的服务器上时,完整请为求uri: http://192.168.1.10/linux/a.html

nginx代理