初识nginx反向代理和缓存机制(简单实现)

实现的需求图:

环境:

nginx缓存和反向代理服务器:192.168.0.224

实际存储数据机器:192.168.0.37

一、实现反向代理

1、安装nginx,两台服务器都需要安装

1)安装依赖包

 yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel

2)下载nginx

wget http://nginx.org/download/nginx-1.8.0.tar.gz

3)解压编译

tar -zxvf nginx-1.8.0.tar.gz
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make
make install

2、修改配置文件

这里只实现他的功能,并没有对配置文件做更多的修改

代理服务器:vim /usr/local/nginx/conf/nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    server {
        listen      80;
        server_name  localhost;

        location /{
        root  /nginxroot;
        }

        location = /50x.html {
            root  html;
        }
        }

        location /web1/ {
                   proxy_pass  http://192.168.0.37/;
        }
 }

真实数据服务器:改路径即可vim /usr/local/nginx/conf/nginx.conf

        location /{
        root  /web1;
        index index.html index.php;
        }

创建对应的文件夹

在192.168.0.224上:

mkdir /nginxroot
echo "I am proxy server" >/nginxroot/index.html 

在192.168.0.37上:

mkdir /web1
echo "I am realy server" >/web1/index.html

3、启动nginx

/usr/local/nginx/sbin/nginx

4、测试

这是代理服务器自身的nginx

假如我要访问www.lile.com/web1,那么代理服务器会把这个请求转发给真实数据机器,然后把数据读取出来

二、缓存机制

在反向代理的基础上,打开缓存机制,这样可以加快访问速度,只是添加几行配置,能实现缓存这个功能,其他具体的优化,安全之类的还没有仔细研究,先搭起来理解看怎么回事再细细研究其他的

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include      mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;

    server {
        listen      80;
        server_name  localhost;

        location /{
        root  /nginxroot;
        }

        location = /50x.html {
            root  html;
        }
        }

        location /web1/ {
                   proxy_cache cache_one;
                   proxy_cache_valid 200 304 302 24h;
                   proxy_pass  http://192.168.0.37/;
        }
 }

主要添加了三行:

proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g;

proxy_cache cache_one;

proxy_cache_valid 200 304 302 24h;

proxy_cache_path:表示缓存文件存放的目录

levels=1:2 :   设置目录层次

keys_zone=cache_one:500m : 设置缓存名字

inactive=1d   : 在指定时间内没人访问,就删除缓存

max_size=30g  : 最大缓存空间

测试:

当你第一次访问web1目录时,得到的结果是,如下,说明它是从真实的数据服务器处获取的数据

可以进入到缓存目录看一下它的目录结构:

查看一下具体的内容:

然后把真实数据服务器的nginx给停掉,再一次访问,还是可以得到

然后把代理服务器的缓存数据给删除,再一次访问,得到结果:

这就说明了第二次访问的是缓存数据的内容

时间: 2024-08-02 11:42:56

初识nginx反向代理和缓存机制(简单实现)的相关文章

初识nginx反向代理和缓存机制

实现的需求图: 环境: nginx缓存和反向代理服务器:192.168.0.224 实际存储数据机器:192.168.0.37 一.实现反向代理 1.安装nginx,两台服务器都需要安装 1)安装依赖包 yum -y install gcc make cmake ncurses-devel libxml2-devel libtool-ltdl-devel gcc-c++ autoconf automake bison zlib-devel pcre-devel openssl openssl-d

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

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

Nginx 反向代理并缓存及缓存清除

Nginx 反向代理并缓存及缓存清除 原文地址:http://www.cnblogs.com/caoguo/p/5012447.html 一. Nginx 配置 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_conne

nginx 反向代理、缓存

lvs+keepalive+nginx(realserver)两台+tomcat(后端服务器),nginx的配置文件nginx.conf如下 user  nobody nobody; worker_processes 12; error_log /var/log/nginx/error.log crit;(取消记录错误日志) #error_log  /var/log/nginx/debug.log  debug_http; #error_log  logs/error.log; #error_l

nginx反向代理及缓存清理

#下载安装包wget http://nginx.org/download/nginx-1.13.7.tar.gzwget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gzwget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.40/pcre-8.41.tar.bz2 #--------------- 在未安装nginx的情况下安装ngx_cache_purge -------

Nginx反向代理、缓存、 负载均衡、upstream以及fastcgi模块应用

Nginx反向代理,缓存, 负载均衡, upstream及fastcgi模块应用 Nginx版本为nginx-1.6.2-1.el6.ngx.x86_64.rpm可以去官网下载: http://nginx.org/packages/centos/6/x86_64/RPMS/ [[email protected] ~]# rpm -ivhnginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]# vim/var/www/html/index.ht

Nginx反向代理和缓存杂记

Nginx反向代理 反向代理实验 1.准备node1,node2两台节点,node1反向至node2,node2配置wed服务 2.node2启动web服务 3.配置node1的nginx反向代理 3.1 备份配置文件 [[email protected] nginx]# cd conf.d/ [[email protected] conf.d]# cp default.conf{,.bak} 3.2 node1配置反向代理至后端服务器 [[email protected] conf.d]# v

Nginx反向代理、缓存、负载均衡

环境介绍 主机名 系统环境 Ip地址 Nginx nginx Centos 6.6 64位 172.16.4.100 Web-01 Web-01 Centos 6.6 64位 172.16.4.101 Web-02 Web-02 Centos 6.6 64位 172.16.4.102 安装nginx 使用官网制作好的rpm包 [[email protected] ~]# rpm -ivh nginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]

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

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