nginx反射代理

阅读数:244 评论数:0

跳转到新版页面

分类

Linux

正文

当使用nginx代理一个请求时,它会把请求发送到需要代理的服务器上,然后获取响应返回给客户端。它可以代理一个http server(另一个nginx或其它server),也可以代理非http协议 server(如php、python),支持的协议包括FastCGI, uwsgi, SCGI和memcahced.

在location配置中使用proxy_pass进行转发请求:

location /some/path/ {
    proxy_pass http://www.example.com/link/;
}

当请求/some/path/page.html时,会变化http://www.example.com/link/page.html.

除了使用域名个,还可以使用ip,另外也可以指定一组server.

location ~ \.php {
    proxy_pass http://127.0.0.1:8000;
}

对于非http协议:

(1)fastcgi_pass对应FastCGI

(2)uwsgi_pass对应uwsgi

(3)scgi_pass对应SCGI

(4)memcached_pass对应memcached

传递request header

默认情况下,nginx反向代理时会重新定义两个header字段,Host和Connection,并去掉为空值的字段。Host会设备的$proxy_host,Connection会设备为close.

如果要改变header字段,需要使用proxy_set_header指令,它可以在location内或server下或http下。

location /some/path/ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://localhost:8000;
}

配置缓存

默认nginx会缓存从被代理的server返回的响应,直到这些响应client接收到为止。缓存对于slow client有优化作用,因为被代理服务器可以很快的把响应发磅给nginx,这样减少被代理的时间浪费。

使用proxy_buffering配置缓存开启,默认on。proxy_buffers指令配置一个请求对应缓存的大小和缓存的块数,响应的第一部分缓存在另一个块中,对应的大小可以通过proxy_buffer_size配置。

location /some/path/ {
    proxy_buffers 16 4k;
    proxy_buffer_size 2k;
    proxy_pass http://localhost:8000;
}

多网卡绑定ip

location /app1/ {
    proxy_bind 127.0.0.1;
    proxy_pass http://example.com/app1/;
}
 
location /app2/ {
    proxy_bind 127.0.0.2;
    proxy_pass http://example.com/app2/;
}



相关推荐

charset utf-8; autoindex on; # 开启自动索引 autoindex_exact_size on; # 显示文件大小的近似值,而非确切值 autoindex_localtim

在 Nginx 配置中,你可能会遇到涉及用户身份的设置,尤其是 nobody 和 root。 root 是 UNIX 系统上的超级用户账户。它拥有对系统的完全访问权限,包括所有文件和命令。出于

1、下载安装包 yum install gcc-c++ 2. gcc安装 yum install gcc-c++ 3. pcre安装 perl compatible reqular expressio

一、简介 普通用户需要root权限,可以虽然通过setuid实现,但是需要root权限的程序可能只是为了一个单一操作,于是这便有了能力概念的引入。 二、能力Capability 1、主要思想 在于分割

一、安装gcc g++的依赖库 sudo apt-get install build-essential && sudo apt-get install libtool 二、安装pcre依赖库 su