nginx反向代理学习笔记

Nginx安装比较简单,下面重点说一下关于反向代理功能的一些配置。
html


upstream 指令必须放在 http的上下文当中,建立一个RealServer的服务器池,并给这个服务器池取一个名字,以便后面引用该服务器池。nginx


那么引用方式主要有这几个,fastcgi_pass, proxy_pass, memcached_pass,uwsgi_pass 等。web


这里,咱们先说一下proxy_pass 这个指令的用法:后端


一、proxy_pass  URL  后面跟上一个URL,这个指令能够放在 location,if in location 中,好比下面的用法:服务器


upstream web_poolide

        {memcached

                server 192.168.1.8;测试

             server 192.168.1.9;网站

        }spa

---------------

location / {

            root   html;

            index  index.html index.htm;

            proxy_pass http://web_pool;

        }

        location /name/ {

             proxy_pass http://192.168.1.9/index.html ;

        }


二、下面关注一下 http_proxy模块的参数:

Nginx的代理功能是经过http_proxy模块来实现的,默认在安装nginx的时候,已经安装了该模块,来看一下每一个选项表明什么意思:

proxy_set_header  设置由后端服务器获取用户的主机名或者真实的IP地址,以及代理者的真实IP地址;

须要作一个实验,来明白这个原理。

请看实验过程,分别在每台后端服务器创建两个虚拟主机。

一、这里为了演示,使用的是经过yum 安装的httpd。

wKioL1VAECehok1wAAG3OuTKWcw859.jpg

二、分别建立对应的网站根目录

mkdir  -pv  /www/docs/{bbs,www}

三、创建网页索引文件

echo "www" > /www/docs/www/index.html  && echo "bbs" > /www/docs/bbs/index.html

四、在后端服务器中使用上述相同步骤操做,并同步网站数据至其余后端服务器中。

scp -pr /www/docs  root@192.168.1.X:/www/docs

五、分别请求测试网页,看看可否正常访问。

wKioL1VAE5TAN3cqAANQxIOE-M4017.jpg

六、由nginx经过反向代理的方式,来访问后端服务器;

 首先来看一下语法

     Syntax: proxy_set_header  field value;

     默认设置: proxy_set_header  Host $proxy_host;  指的是反向代理nginx的IP地址,不是来自客户端的域名

     Context:http, server, location  上下文标签中

七、为了保证,可以未来自客户端的请求正确的转发到正确的虚拟主机上,须要在location标签中,增长下面的设置。

     proxy_set_header  Host $host;


client_body_buffer_size  用于指定客户端请求主体缓冲区大小,能够理解为先保存到本地而后再传给客户;

proxy_connect_timeout   表示与后端服务器链接的超时时间,即发起握手等候响应的超时时间;

proxy_send_timeout   表示后端服务器的数据回传时间,即在规定时间以内后端服务器必须传完全部的数据,不然,nginx则断开这个链接;

proxy_read_timeout   设置nginx从代理的后端服务器获取信息的时间,表示链接创建成功后,nginx等待后端服务器的响应时间,

相关文章
相关标签/搜索