nginx正向和反向代理配置详解 您所在的位置:网站首页 反向代理部署网站怎么做dns nginx正向和反向代理配置详解

nginx正向和反向代理配置详解

#nginx正向和反向代理配置详解| 来源: 网络整理| 查看: 265

nginx代理有三种模式

正向代理      反向代理   透明代理

透明代理不怎么常用。

这里主要讨论的是正向代理和反向代理

首先要熟悉nginx的常用配置,大致了解它们的功能与用途以及配置参数

 

 

配置语法

 

语法:proxy_buffering on | off; 默认值:proxy_buffering on; 可配置段:http, server, location 作用:配置proxy缓冲区。 扩展: proxy_buffer_size:设置缓冲区大小(内存页大小) proxy_buffers:设置缓冲区数量和大小(内存页数量和大小) proxy_busy_buffers_size:设置最大缓冲区大小   语法:proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement; 默认值:proxy_redirect default; 可配置段:http, server, location 作用:配置proxy重定向。 扩展:   语法:proxy_buffering on | off; 默认值:proxy_buffering on; 可配置段:http, server, location 作用:配置proxy缓冲区。 扩展:   语法:proxy_set_header field value; 默认值:proxy_set_header Host $proxy_host; proxy_set_header Connection close; 可配置段:http, server, location 作用:配置proxy头信息。 扩展: proxy_hide_header:设置隐藏头信息字段; proxy_set_body:设置请求体返回信息。   语法:proxy_connect_timeout time; 默认值:proxy_connect_timeout 60s; 可配置段:http, server, location 作用:配置proxy超时。 扩展: proxy_hide_header:设置隐藏头信息字段; proxy_set_body:设置请求体返回信息。

 

 

正向代理配置

 

vi /etc/nginx/conf.d/reverse.conf server{ resolver 8.8.8.8; #配置DNS解析IP地址 resolver_timeout 30s; #超时时间(5秒) listen 8080; access_log /var/log/nginx/reverse.access.log main; error_log /var/log/nginx/reverse.error.log warn; location / { proxy_pass http://$http_host$request_uri; #配置正向代理参数 proxy_set_header Host $http_host; #解决如果URL中带"."后Nginx 503错误 proxy_buffers 256 4k; #配置缓存大小 proxy_max_temp_file_size 0; #关闭磁盘缓存读写减少I/O proxy_connect_timeout 30; #代理连接超时时间 proxy_cache_valid 200 302 10m; proxy_cache_valid 301 1h; proxy_cache_valid any 1m; #配置代理服务器缓存时间 } }

 

nginx -t -c /etc/nginx/nginx.conf #检查配置文件

nginx -s reload

配置释义: 不能有hostname。 必须有resolver, 即dns,超时时间(30秒)可选。 配置正向代理参数,均是由 Nginx 变量组成。 提示:配置好后,重启nginx,以浏览器为例,若需要使用这个代理服务器,则只需将浏览器代理设置为http://+服务器ip地址+:+80即可使用了。               反向代理配置   server {     listen  80;     server_name  forward.linuxds.com;     access_log  /var/log/nginx/forward.access.log  main;     error_log   /var/log/nginx/forward.error.log  warn;     location / {         proxy_pass https://www.landiannews.com/;         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;         client_max_body_size       10m;     #允许客户端请求的最大单文件字节数         client_body_buffer_size    128k;    #缓冲区代理缓冲用户端请求的最大字节数         proxy_connect_timeout      300;     #nginx跟后端服务器连接超时时间(代理连接超时)         proxy_send_timeout         300;     #后端服务器数据回传时间(代理发送超时)         proxy_read_timeout         300;     #连接成功后,后端服务器响应时间(代理接收超时)         proxy_buffer_size          4k;      #设置代理服务器(nginx)保存用户头信息的缓冲区大小         proxy_buffers              4 32k;   #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置         proxy_busy_buffers_size    64k;     #高负荷下缓冲大小(proxy_buffers*2)         proxy_temp_file_write_size 64k;     #设定缓存文件夹大小,大于这个值,将从upstream服务器传     }   }

 

 

nginx -t -c /etc/nginx/nginx.conf #检查配置文件nginx -s reload

配置释义: proxy_set_header X-Real-IP $remote_addr:把源IP【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP,从而通过$X-Real-IP来获取源IP; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for:在nginx作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用【,】隔开                 其他代理配置说明    其他代理配置语句 proxy_pass:设置代理服务器的地址,可以是主机名称、IP地址加端口号等形式。 proxy_pass URL 提示: 1:当代理的是一组服务器时可以使用 upstream 指令来设置。 2:当URL中含有uri时,(例如 "http://127.0.0.1:8080/"、"http://127.0.0.1:8080/demo.html")不管客户端访问的是地址中的uri是什么,代理服务器都会代理到URL的地址;当URL中不包含uri时(例如:"http://127.0.0.1:8080"),那么当客户端访问服务器时,代理服务器会根据客户端请求的uri来访问具体的URL地址。   proxy_pass_request_body on|off:用于配置是否将客户端请求的请求体发送给代理服务器。 proxy_pass_request_headers on|off:用于配置是否将客户端请求的头信息发送给代理服务器。 proxy_set_header field value:可以更改nginx接收到的客户端请求的请求头信息,然后将新的请求头信息发送给被代理的服务器。 proxy_set_body value:ngin接收到客户端的请求后使用该指令可以修改request中的body体,然后将请求转发给代理服务器。 proxy_connect_timeout time:nginx服务器与被代理服务器之间尝试建立连接的的超时时间,默认为60s。 proxy_read_timeot time:nginx服务器接收被代理服务器数据时最大的等待时间,默认为60s。 proxy_send_timeout time:nginx服务器发送数据至被代理服务器的最大等待时间,例如60s内没有发出一个字节则默认断开连接,默认60s。 proxy_http_version 1.0|1.1:nginx服务器提供代理服务的http协议版本。 proxy_method method:nginx服务器设置请求被代理服务器时使用的请求方法,一般为POST或者GET。 proxy_ignore_client_abort:当客户端中断网络请求时,nginx服务是否中断对代理服务器的请求,默认off。

 

参考 https://www.cnblogs.com/itzgr/p/13327861.html  

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有