Nginx反向代理及优化

Nginx反向代理及优化

一、反向代理概念

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

通常的代理服务器,只用于代理内部网络对Internet外部网络的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。不支持外部网络对内部网络的连接请求,因为内部网络对外部网络是不可见的。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

反向代理就是通常所说的web服务器加速,它是一种通过在繁忙的web服务器和外部网络之间增加一个高速的web缓冲服务器来降低实际的web服务器的负载的一种技术。反向代理是针对web服务器提高加速功能,作为代理缓存,它并不是针对浏览器用户,而针对一台或多台特定的web服务器,它可以代理外部网络对内部网络的访问请求。

反向代理服务器会强制将外部网络对要代理的服务器的访问经过它,这样反向代理服务器负责接收客户端的请求,然后到源服务器上获取内容,把内容返回给用户,并把内容保存到本地,以便日后再收到同样的信息请求时,它会把本地缓存里的内容直接发给用户,以减少后端web服务器的压力,提高响应速度。

二、反向代理工作原理

(1) 用户通过域名发出访问web服务器的请求,该域名被DNS服务器解析为反向代理服务器的IP地址;

(2) 反向代理服务器接受用户的请求;

(3) 反向代理服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户;

(4) 如果本地缓存里没有用户所请求的信息内容,反向代理服务器会代替用户向源服务器请求同样的信息内容,并把信息内容发给用户,如果信息内容是缓存的还会把它保存到缓存中。

三、nginx反向代理

1. 实施环境:Centos 64位 PC机

2. 实施要求:

现有一内网网段,想去访问外网,不需要通过nat转换,而通过代理服务进行访问外网。

3. 实施拓扑图

使用亿图工具根据实施要求绘制出网络拓扑图,如下图所示:

4. 详细实施

首先在Linux系统上安装nginx,然后在实现代理,具体操作如下:

⑴ 在安装Nginx之前,确保系统已经安装了pcre-devel软件库。因此,先安装该库文件,把光盘挂在上安装。

//挂在光盘

[[email protected] ~]# mount /dev/cdrom /media/cdrom

//使用yum进行安装

[[email protected] Packages]# yum install pcre-devel-7.8-6.el6.x86_64.rpm

⑵ 安装libevent库文件

//解压安装包

[[email protected] ~]# tar -zxvf libevent-2.0.21-stable.tar.gz -C /usr/local/src/

//进入解压后目录下进行编译

[[email protected] ~]# cd /usr/local/src/libevent-2.0.21-stable/

[[email protected] libevent-2.0.21-stable]# ./configure --prefix=/usr/local/libevent  //指出安装目录

//执行make和make install

[[email protected] libevent-2.0.21-stable]# make && make install

//编辑/etc/ld.so.conf.d/libevent.conf指明/usr/local/libevent/lib路径

[[email protected] lib]# vim /etc/ld.so.conf.d/libevent.conf

//编辑完后重新加载读取

[[email protected] lib]# ldconfig

//查看是否生效

[[email protected] lib]# ldconfig -pv |grep libevent

⑶ 安装配置nginx

//解压安装包

[[email protected] ~]# tar -zxvf nginx-1.6.0.tar.gz -C /usr/local/src/

//进入解压后的目录进行编译

[[email protected] nginx-1.6.0]# ./configure \

> --conf-path=/etc/nginx/nginx.conf \

> --error-log-path=/var/log/nginx/error.log \

> --http-log-path=/var/log/nginx/access.log \

> --pid-path=/var/run/nginx/nginx.pid \

> --lock-path=/var/lock/nginx.lock \

> --user=nginx \

> --group=nginx \

> --with-http_ssl_module \

> --with-http_flv_module \

> --with-http_stub_status_module \

> --with-http_gzip_static_module \

> --http-client-body-temp-path=/var/tmp/nginx/client/ \

> --http-proxy-temp-path=/var/tmp/nginx/proxy/ \

> --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

> --with-pcre

//执行make和make install

[[email protected] nginx-1.6.0]# make && make install

//创建组和账号,并把账号加入到组

[[email protected] ~]# groupadd -r nginx

[[email protected] ~]# useradd -r -g nginx nginx

//进行语法检测

[[email protected] ~]# cd /usr/local/nginx/sbin/

[[email protected]huangzhong sbin]# ./nginx  -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)  //显示缺少此目录

nginx: configuration file /etc/nginx/nginx.conf test failed

//创建目录

[[email protected] sbin]# mkdir -pv /var/tem/nginx/client

//然后启动,并查看端口

[[email protected] sbin]# ./nginx

[[email protected] sbin]# netstat -tupln |grep nginx

tcp      0     0 0.0.0.0:80    0.0.0.0:*     LISTEN    10418/nginx

然后通过网页访问进行测试,看能否访问到,在访问前首先要关闭防火墙和selinux。

//关闭防火墙和selinux

[[email protected] sbin]# service iptables stop

[[email protected] sbin]# chkconfig iptables off  //永久关闭

[[email protected] sbin]# setenforce 0

通过网页进行访问结果如下:

⑷实现代理功能

//编辑/etc/nginx目录下nginx.conf文件

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

//关闭nginx服务,然后重新启动

[[email protected] ~]# pkill nginx

[[email protected] ~]# nginx

5. 验证测试

首先打开C盘下windows/system32/Drivers/etc目录下hosts文件,然后把192.168.2.101   www.tyedus.com加入保存关闭,然后通过网页进行访问结果如下:

四、nginx反向代理优化

Nginx反向代理优化其实就是对nginx反向代理进行加速缓存,而加速缓存的配置可以到nginx官网http://nginx.org中的功能模块中去参考样例配置文件。在这里进行配置如下:

//编辑/etc/nginx目录下nginx.conf文件

//创建编辑过程中所用到的目录

[[email protected] ~]# mkdir -pv /data/nginx/cache

//关闭nginx服务,然后在重新启动

[[email protected] ~]# pkill -9 nginx

[[email protected] ~]# nginx

//安装httpd-tools工具使用ab进行测试

[[email protected] ~]# yum install httpd-tools

//使用ab工具进行测试

[[email protected] ~]# ab -n 10000  http://192.168.2.101/index.html

没有配置加速缓存时测试的结果如下图1所示:

图1 没有配置加速缓存时测试的结果

安装配置加速缓存后测试的结果如下图2所示:

通过图1和图2对比可以看出使用加速缓存后访问请求次数远远大于没有加速缓存时的访问请求次数,并且请求时间大大的缩短了。

Nginx反向代理及优化

时间: 2024-11-05 11:52:23

Nginx反向代理及优化的相关文章

nginx 反向代理企业级优化介绍

1,nginx 服务器内核参数生产配置优化 原文地址:http://blog.51cto.com/skinglzw/2161582

Linux系统——Nginx反向代理与负载均衡

集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理.当用户客户机请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器. 特点:(1)高性能用户通过Internet到公司的网关,网关通过防火墙,调载到前端的主负载均衡服务器上(有主有备,预防单点问题),主负载均

Nginx 反向代理、负载均衡

## Nginx 反向代理. (一)简介 一.什么是代理服务器 客户机原本发送给服务器的请求,不会直接发送给服务器,而是先发送给代理服务器:经过代理服务器处理后转发给服务器:服务器数据处理后转回给代理服务器,代理服务器再返回给客户机的一个过程. 二.代理服务器的作用 1. 防火墙作用 由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息: 2. 提高Web访问速度 可以缓存真实Web服务器上的某些静态资源,减轻真实Web服务器的负载压力: 3. 实现

搭建nginx反向代理用做内网域名转发

基于域名的7层转发的实现(NAT+反向代理) 在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难.一一对应关系也没有规律.访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下: Public IP Public Port Number Internal IP Internal Port Number Note 1.1.1.1 80 192.168.1.10

nginx反向代理缓存服务器的构建

Nginx反向代理缓存服务器构建 一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理:与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就

Nginx反向代理缓存服务器搭建

Nginx反向代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

Nginx反向代理、缓存、负载均衡服务器构建

代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器接受来

nginx反向代理缓存服务器构建

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网

keepalived+nginx反向代理访问后端web服务器

 架设web服务器通过nginx反向代理访问,并通过keepalived配置nginx反向代理服务器和nginxweb 服务器的故障转移 1.系统:Centos6.6 2.反向代理:Keepalived+nginxproxy:  主机:PHP-API-P1       IP地址:192.168.0.111 主机:PHP-API-P2 IP地址:192.168.0.112 VIP :192.168.0.8 3.后端服务:Keepalived+nginx: 主机:PHP-API-S1 IP地址:19