nginx+rewrite+proxy+cache基本实验

今天分享下nginx+rewrite+proxy+cache
nginx于apache的区别

1.nginx基于ip做限制
小实验:

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  www.abc.com;
        location / {
            root   html/abc;
            index  index.html index.htm;
        }
                location ~ \.doc$ {        (访问以doc结尾的文件只允许13这台机器,顺序控制。)
                   root   html/abc;
                   allow 192.168.10.13;
                   deny  all;
                }
    }

}



**基于用户密码控制**

[[email protected] conf]# yum install -y httpd-tools
[[email protected] conf]# htpasswd -cm /usr/local/nginx/passwd.db boke
New password:
Re-type new password:
Adding password for user boke
[[email protected] conf]# cat /usr/local/nginx/passwd.db
boke:$apr1$pSOqFIOj$2LLFh0gedT5fEEkx5WbfD.

[[email protected] conf]# vim nginx.conf
 server_name  www.abc.com;
        location / {
            auth_basic "请输入用户名和密码";
            auth_basic_user_file "/usr/local/nginx/passwd.db";

                        [[email protected] conf]# restartnx  (这个是个alias)
                        alias restartnx=‘/usr/local/nginx/sbin/nginx -s reload‘

[nginx日志轮训](http://blog.51cto.com/lookingdream/1794169)
rewrite实验
[[email protected] conf]# vim nginx.conf
server {
        listen       80;
        server_name  www.joy.com;
        location / {
                charset utf-8;
            root   html/joy;
            index  index.html index.htm;
        location ~ /boke/.* {
                rewrite ^/boke/.*       /boke/index.html break;

    [[email protected] conf]# tree /usr/local/nginx/html/joy/
/usr/local/nginx/html/joy/
├── boke
│?? ├── 1.html
│?? ├── 2.html
│?? └── index.html
└── index.html
# proxy反向代理
[[email protected] conf]# vim nginx.conf
server {
        listen       80;
        server_name  www.joy.com;
        location / {
                proxy_pass http://192.168.10.15; (访问www.joy.com的就转到后端服务器的ip上,但是这样做会带来问题?多个URL怎么访问?)
          }
        }

使用nginx自带的变量完成。
server {
        listen       80;
        server_name  www.joy.com;
        location / {
                proxy_pass http://192.168.10.15;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
        }
server {
        listen       80;
        server_name  www.sss.com;
        location / {
                proxy_pass http://192.168.10.15;
                proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          }
        }
}

192.168.10.15web服务器配置两个虚拟主机
Starting httpd: httpd: apr_sockaddr_info_get() failed for DNS-master
httpd: Could not reliably determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName
[Wed May 09 02:30:26 2018] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
                                                           [  OK  ](启动时报错,httpd.conf的一个参数没打开,取消注释即可)

[[email protected] conf]# vim httpd.conf
    # Use name-based virtual hosting.
    #
NameVirtualHost *:80                                                                                                                 
轮训策略默认为1:1
侧重轮训
绑定轮训  

这里使用默认轮训

upstream apache_pool {
server 192.168.10.15;
server 192.168.10.14;
}

server {
        listen       80;
        server_name  www.joy.com;

        location / {
                proxy_pass http://apache_pool;  (这里写的是地址池)
proxy_set_header Host $host;




nginx缓存

nginx可以使用缓存,减轻后端服务器压力
[[email protected] nginx]# vim nginx.conf  (主配置文件)

虚拟主机配置

下次分享lnmp。。

原文地址:http://blog.51cto.com/13293172/2114556

时间: 2024-11-07 20:02:28

nginx+rewrite+proxy+cache基本实验的相关文章

nginx rewrite模块探究与实验

关于nginx中的rewrite,之前的理解总感觉有些不精确.比如以下问题,经过rewrite之后: 什么情况会返回200? 什么情况会返回301/302? 什么情况浏览器里的url不变? 什么情况浏览器里的url会变? 什么情况匹配一次就不再匹配之后的规则或location? 什么情况匹配到一条规则后,会以rewrite之后的url再到server段走一遍 如果读者能理解清楚以上问题,则说明对nginx的rewrite整体上已经有了全面的认识. 接下来我们针对以上问题,来通过试验逐一解答 实验

Nginx缓存[proxy cache、memcache]

nginx自带缓存 nginx自己有单独的进程来对磁盘上的缓存文件进行扫描,在内存中建立缓存索引.并且有管理进程来对缓存进行过期判断,更新等操作 定义:只能在http段中使用 proxy_cache_path /dev/shm/nginx/cache levels=1:2 keys_zone=one:10m inactive=5m loader_sleep=1m max_size=200m; /dev/shm????????????????#内存系统,这样缓存将更快. level????????

利用Proxy Cache使Nginx对静态资源进行缓存

前言 Nginx是高性能的HTTP服务器,通过Proxy Cache可以使其对静态资源进行缓存.其原理就是把静态资源按照一定的规则存在本地硬盘,并且会在内存中缓存常用的资源,从而加快静态资源的响应. 配置Proxy Cache 以下为nginx配置片段: proxy_temp_path   /usr/local/nginx/proxy_temp_dir 1 2; #keys_zone=cache1:100m 表示这个zone名称为cache1,分配的内存大小为100MB #/usr/local/

nginx Proxy Cache 配置

总结一下 proxy cache 设置的常用指令及使用方法: proxy_cache proxy_cache zone | off 配置一块公用的内存区域的名称,该区域可以存放缓存的索引数据.注意:zone 代表用于存放缓存索引的内存区域的名称(需要使用 proxy_cache_path指令设置):off 代表关闭Proxy Cache功能 proxy_cache_path proxy_cache_path path [levels=levels] keys_zone=name:size [in

nginx rewrite功能

Nginx rewrite 一.什么是Nginx rewrite Nginx rewrite 主要功能是实现URL地址重写.Nginx的 rewrite 规则需要PCRE软件的支持,即通过Perl兼容正则表达式语法进行规则匹配 二.Nginx rewrite 语法和参数介绍 1.Nginx rewrite 语法 rewrite regex replacement [flag]; rewrite:固定格式 regex: 正则表达式 replacement:重写后的URL flag: 重写状态标记

nginx rewrite规则语法

在新主机的迁移过程中,最大的困难就是WP permalink rewrite的设置. 因为旧主机是用的Apache, 使用的是WP本身就可以更改的.htaccess,没有太大的难度.而这次在VPS上跑的是Nginx,主要是因为Nginx的速度比Apache要快很多. 但是另一方面就不是那么舒服了,因为Nginx的rewrite跟Apache不同,而且是在服务器上面才能更改. 下面是其间的一些研究笔记.(以下用例如无特别说明均摘自nginx wiki) /1 Nginx rewrite基本语法 N

Nginx Rewrite详解

引用链接:http://blog.cafeneko.info/2010/10/nginx_rewrite_note/ 原文如下: 在新主机的迁移过程中,最大的困难就是WP permalink rewrite的设置. 因为旧主机是用的Apache, 使用的是WP本身就可以更改的.htaccess,没有太大的难度.而这次在VPS上跑的是Nginx,主要是因为Nginx的速度比Apache要快很多. 但是另一方面就不是那么舒服了,因为Nginx的rewrite跟Apache不同,而且是在服务器上面才能

Nginx rewrite 中break与last指令的区别

PS:原创文章,如需转载,请注明出处,谢谢! 本文地址:http://flyer0126.iteye.com/blog/2257670 nginx rewrite指令语法:rewrite regex replacement [flag];默认值:无作用域:server,location,if如果一个URI匹配指定的正则表达式regex,URI就按照replacement重写.rewrite按配置文件中出现的顺序执行.flags标志可以停止/继续处理.如果replacement以"http://&

nginx rewrite正则子组最多匹配到$9

nginx rewrite正则匹配()匹配子组最多匹配到$9,就是从$0到$9 当需要匹配更多子组时,可通过变量来实现 if ($uri ~ ^/forum-15/sortid-74/(.*?)(lastpost|dateline)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$){    set $orderby $2;    set $mdate $3;    set $workhours $4;    set $pricerange $5;    se