nginx反向代理配置过程

反向代理从传输上分可以分为2种:同步模式(apache-mod_proxy和squid)    异步模式(lighttpd 和 nginx)

同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道。在请求发起直到请求完成,这条通道都是一直存在的。
异步传输:浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header)先收到nginx上,然后nginx再把这个请求发到后端,后端处理完之后把数据返回到nginx上,nginx将数据流发到浏览器,这点和lighttpd有点不同,lighttpd是将后端数据完全接收后才发送到浏览器。

小结:apache和squid的反向会增加后端web的负担,因为每个用户请求都会在proxy上与后端server建立的长久链接,知道数据取完前,连接都不会消失。因为wan速度与lan速度的不同,虽然lan之间的速度是极度快的,但是用户的wan连接决定了这个时间长。而lighttpd和nginx的异步模式,是不管你用户要求的数据有多大,都是先收下来,再与后端联系,这是非常迅速的速度,所以proxy与后端连接时间也会很短,几十M的东西也是几秒内。后端不需要维护这么多连接。而lighttpd也和nginx不同的异步,lighttpd是先收完再转向客户浏览器,而nginx是边收数据边转向用户浏览器。

环境:

两台私网web服务器ip:192.168.1.12 静态html网页    ip:192.168.1.13  动态php网页

一台代理服务器私网ip:192.168.1.11 公网ip:202.106.0.1

一台公网客户ip:202.106.0.20

需求:

1:公网客户可以通过nginx代理服务器访问公司主页www.sw.com

2:nginx可以实现动态和静态网页分离访问不同web服务器

3:防防盗链

实现步骤:

1:服务器上安装nginx源码包程序,设置为开机启动,备份主配置文件

[[email protected] ~]# useradd  -M -s /sbin/nologin nginx                //添加系统用户nginx,无家目录和禁止登录

[[email protected] ~]#yum -y install gcc gcc-c++ make pcrc-devel openssl-devel   //安装编译环境开发包

[[email protected] ~]#mkdir /nginx                                                    //创建存放文件夹

[[email protected] nginx-0.8.55]# ./configure --prefix=/nginx \        //转换源码,指定安装目录

>--user=nginx --group=nginx                                                  //指定进程属主,属组

>--with-http_stub_status_module --with-http_ssl_module;    //加载查看状态模块,ssl模块

[[email protected] nginx-0.8.55]# make  && make install                //编译安装

[[email protected] ~]# vim /etc/rc.local                  //添加到开机启动脚本

/nginx/sbin/nginx

[[email protected] ~]# cp -p /nginx/conf/{nginx.conf,nginx.conf.bak}  //备份主配置文件

2:配置主配置文件,重启服务

[[email protected] ~]# vim /nginx/conf/nginx.conf

...  
3 worker_processes  1;                    //进程个数,建议和cpu核数相同
...
12 events {
13     worker_connections  1024;    //每进程最大并发连接数
14 }
...
17 http {
...
20     upstream web {                    //定义web地址池组    
21     server 192.168.1.12:80   weight=4;         //此台权重为4,轮询时访问比例为4:1
22     server 192.168.1.13:80;
23     ip_hash;                              //让同ip地址访问同一个web服务器
24         }
...
122     server {
123         listen     80;
124         server_name  www.sw.com;
125         location / {
128            proxy_pass http://web;                        //调用web地址池
129         }
130         location ~*  \.php$ {                //当访问结尾是php时,代理到192.168.1.13
131            proxy_pass http://192.168.1.13;
132  client_max_body_size 10m;                   //允许客户端请求的最大单文件字节数
133            client_body_buffer_size 128k;     //缓冲区代理缓冲用户端请求的最大字节数,
134            proxy_connect_timeout 90;    //nginx跟后端服务器连接超时时间(代理连接超时)
135            proxy_send_timeout 90;           //后端服务器数据回传时间(代理发送超时)
136            proxy_read_timeout 90;      //连接成功后,后端服务器响应时间(代理接收超时)
137            proxy_buffer_size 4k;  //设置代理服务器(nginx)保存用户头信息的缓冲区大小
138            proxy_buffers 4 32k;        //proxy_buffers缓冲区,网页平均在32k以下的设置
139            proxy_busy_buffers_size 64k;        //高负荷下缓冲大小(proxy_buffers*2)
140            proxy_temp_file_write_size 64k; //设定缓存大于这个值,将从upstream服务器传
141         }
142         location ~* \.(gif|png|jpg|mp3|rm|flv)$ {   //防盗链,只允许本域直接访问
143         valid_referers none blocked .sw.com;
144         if ($invalid_referer) { rewrite ^/ http://192.168.1.11/error.htm;}
145         }
146       }
...
156 }

[[email protected] ~]#/nginx/sbin/nginx -s stop                          //停止服务

[[email protected] ~]#/nginx/sbin/nginx                                     //启动服务

时间: 2024-11-05 22:40:30

nginx反向代理配置过程的相关文章

Nginx反向代理配置配置实例

为了节省支出,公司需要将分布在不同机器的站点都迁移到一台机器,而目前不同机器运行的是不同的web服务,部分是nginx,部分是apache,由于牵涉较多rewrite规则,为了节省修改功夫,打算迁移后相应站点依然使用原来的web服务,但是同一台机器80端口只能分配给一种web服务使用,于是计划nginx使用80,apache使用其它端口例如8088,通过nginx反向代理,使apache的站点从80端口跳转到8088端口. 1.nginx和apache的安装过程略过 2.nginx的api.12

nginx反向代理配置两个不同服务器

1.什么是反向代理通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的(也就是正向代理). 而反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现

nginx反向代理配置

nginx这块了解得不深,这里只简单记录下配置文件,后续再做补充. 一.反向代理的配置 server { listen 80; #配置监听的端口 server_name zxy1994.com; #访问域名 proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; p

FastDFS安装与nginx反向代理配置

操作系统 Ubuntu Server nginx相关软件 nginx-1.10.1 http://nginx.org/en/download.html nginx清除缓存模块 ngx_cache_purge-2.3 http://labs.frickle.com/nginx_ngx_cache_purge/ pcre-8.36 https://sourceforge.net/projects/pcre/files/pcre/8.36/ zlib库 http://zlib.net/zlib-1.2

Nginx反向代理配置可跨域

由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 1 XMLHttpRequest cannot load http://b.domain.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://a.domain.com' is therefore not al

nginx反向代理配置详解

反向代理配置 修改部署目录下conf子目录的nginx.conf文件(如/opt/nginx/conf/nginx.conf)内容,可调整相关配置. 将默认配置里面带#号注释内容去掉 grep -v "#" /opt/nginx/conf/nginx.conf > /opt/nginx/conf/nginx.confbak 将原先的配置修改名字备份一下,后面的没有注释内容的nginx.confbak修改名字为nginx.conf 反向代理配置示例: #定义Nginx运行的用户和用

centos安装Nginx,反向代理配置全过程

1.安装依赖 #gcc安装,nginx源码编译需要 yum install gcc-c++ #PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式 yum install -y pcre pcre-devel #zlib安装,nginx 使用zlib对http包的内容进行gzip yum install -y zlib zlib-devel #OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https(

(总结)Linux服务器上最简单的Nginx反向代理配置

Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部或其他网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端. 简单实现方法: 例如我想在服务器上建一个google.ha97.com的域名用来反向代理访问Google,首先在域名注册商那里的域名管理上为域名google.ha97.com添加A记录到服务器的IP上,再

nginx反向代理配置及优化

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liuyu.blog.51cto.com/183345/166381 2009-05-26 作者:守住每一天blog:liuyu.blog.51cto.combbs:bbs.linuxtone.orgmsn:liuyubj520#hotmail.comemail:liuyu105#gmail.com 前言:     由于服务器apache抗不住目前的并发.加上前端squid配置后