当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Nginx Proxy 代理配置图片缓存的实例参考      在nginx环境中,可以使用Nginx 的 proxy_store 把主服务器的静态内容缓存到本地,即实现图片缓存。 第一次访问结束后,以后的访问将直接在本地硬盘上读写,从而分担流量负载,提高访问速度.........
    ▪使用nginx的X-Accel-Redirect头实现下载控制      所谓控制下载:即将下载文件的请求转发到某脚本, 然后由这脚本决定怎么做: 发送这个文件给用户,出现决绝访问页,或其它操作。 在lighttpd服务器里可以通过从脚本传回X-Sendfile头实现; .........
    ▪有关nginx日志格式的设计分享      要在Nginx的日志中打印一些特殊信息,因此要自定义一些日志。 配置节内容参考如下:   代码示例: #设置user_id的默认值 set $user_id "0"; #设置user_kind的默认值 set $user_kind "-"; #设置uuid的默.........

[1]Nginx Proxy 代理配置图片缓存的实例参考
    来源: 互联网  发布时间: 2013-12-24

在nginx环境中,可以使用Nginx 的 proxy_store 把主服务器的静态内容缓存到本地,即实现图片缓存。
第一次访问结束后,以后的访问将直接在本地硬盘上读写,从而分担流量负载,提高访问速度与用户体验。

以下是配置代码:
 

代码示例:

events
{
use epoll;
worker_connections 65535;
}

server {
        include         listen.conf;
        server_name     www.;

        location ~ \.php$ {
            limit_conn   one  20;
            limit_rate   50k;
            proxy_pass http://s1;
            include proxy.conf;
        }

        location / {
            expires max;
            root /data/nginx_cache/ucenter;
            proxy_store on;
            proxy_store_access user:rw group:rw all:rw;
            proxy_temp_path /data/nginx_cache/ucenter;
            include proxy.conf;
            if ( !-e $request_filename) {
            proxy_pass  http://s1;
            }
        }
}

#######################
## 附 proxy.conf 内容 ##
#######################

proxy_redirect          off;
proxy_set_header        Host $host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        Accept-Encoding 'gzip';
client_max_body_size    100m;
client_body_buffer_size 256k;

proxy_connect_timeout   60;
proxy_send_timeout      60;
proxy_read_timeout      60;

proxy_buffer_size       512k;
proxy_buffers           8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;

您可能感兴趣的文章:
Nginx负载均衡与反向代理的例子(图文)
nginx正向代理配置简单一例
nginx反向代理配置简单示例
学习Nginx反向代理实现简单负载均衡(图文)
nginx缓存html静态文件 解析php及反向代理IIS的配置
nginx1.0.0配置ngx_cache_purge实现高效反向代理的方法
nginx中配置proxy正向代理
nginx创建反向代理和虚拟主机的例子
nginx的反向代理配置与优化
nginx反向代理与varnish缓存配置
nginx反向代理与负载均衡
Nginx 反向代理的小例子
nginx反向代理与缓存详解
nginx反向代理配置一例
Nginx反向代理Nginx
nginx反向代理配置和优化
Nginx Proxy代理和图片缓存配置
nginx配置反向代理的简单示例


    
[2]使用nginx的X-Accel-Redirect头实现下载控制
    来源: 互联网  发布时间: 2013-12-24

所谓控制下载:即将下载文件的请求转发到某脚本, 然后由这脚本决定怎么做:
发送这个文件给用户,出现决绝访问页,或其它操作。

在lighttpd服务器里可以通过从脚本传回X-Sendfile头实现;
而Nginx是通过使用X-Accel-Redirect头实现的。

假设使用Apache运行PHP或Rails产生动态内容,而用Nginx作为前台反向代理(bianbian注:

反向代理又称为服务器加速(Server accelerate),原理是将用户的请求转发到目标服务器,然后将结果转发给用户。好处有很多:保护目标服务器安全、负载均衡容易实现、有点类似防火墙;坏处就是要传递用户的IP时多了些步骤)。

1. 因为Nginx服务器会改善所有对动态内容的缓慢请求,能节省服务器的资源(细节正在这里)。
Nginx会缓存客户端的请求,等全部发送完毕了才一起转发给后台脚本,比如在上载文件时。

好处是减少后台脚本等待的时间,确实对性能有一定改善;
坏处就是在脚本里时时显示上载进度的功能是不可能实现了。

2. 能对静态文件的下载做出控制。

以下的内容,假设网站位于 /var/www 目录,而静态文件位于 /var/www/files 目录。
Apache监听在8080端口上。

nginx配置:
 

代码示例:
http {
....
server {
listen   80;
server_name  www.;
 
location / {
rewrite ^/download/(.*) /down.php?path=$1 last;
 
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
 
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP$remote_addr;
proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
 
client_max_body_size   10m;
client_body_buffer_size128k;
 
proxy_connect_timeout  90;
proxy_send_timeout 90;
proxy_read_timeout 90;
 
proxy_buffer_size  4k;
proxy_buffers  4 32k;
proxy_busy_buffers_size64k;
proxy_temp_file_write_size 64k;
}
 
location /files {
root /var/www;
internal;
}
}
}
 

关键字“internal”指明了哪些目录需要通过X-Accel-Redirect头与后台脚本进行内部转向。
脚本只需要完成下载控制的部分,至于分段下载等其它特性跟一般的静态文件一样,都由Nginx服务器实现。

php代码内容:
 

代码示例:
<?php
// 得到要下载的文件名
$path = $_GET["path"];
 
//...
// 此处完成权限校验、下载统计等
//...
 
// 重定向完成下载
header("X-Accel-Redirect: /files/" . $path);
?>

在 Rails 里可以在控制(controller)里写如下代码(Rails是约定好的MVC架构):
 

代码示例:
# 得到要下载的文件名
path = @params["path"]
 
# ...
# 这里完成权限校验、下载统计等等
# ...
 
# 重定向完成下载
@response.headers['X-Accel-Redirect'] = "/files/" + path

用上述方法就能创建非常灵活又极度高效的文件分发系统。

注意,有时需要加上:
proxy_hide_header Content-Type;

另外,internal 关键字必须要有!internal指明了必须通过内部才能下载(避免直接输链接)。
如果忘记了internal,即使后台fastcgi输出X-Accel-Redirect也没有用。
那么,如果有些文件又允许直接下载,又允许fastcgi来转向下载,应该如何操作呢?
还好linux有link文件,用“ln -s”建立一个软指向目录就可以了。


    
[3]有关nginx日志格式的设计分享
    来源: 互联网  发布时间: 2013-12-24

要在Nginx的日志中打印一些特殊信息,因此要自定义一些日志。

配置节内容参考如下:
 

代码示例:

#设置user_id的默认值
set $user_id "0";
#设置user_kind的默认值
set $user_kind "-";
#设置uuid的默认值
set $uuid "_";

if ( $http_cookie ~* "user_id=([0-9]*)" ){
     set $user_id $1;
     }

if ( $http_cookie ~* "user_kind=([0-9]*)" ){
     set $user_kind $1;
     }

if ( $http_cookie ~* "_uuid=([A-Za-z0-9 ]*)" ){
      set $uuid $1;
    }

Nginx的Location可以有以下几个匹配:
 

1. =   严格匹配这个查询。如果找到,停止搜索。
2. ^~ 匹配路径的前缀,如果找到,停止搜索。
3. ~   为区分大小写的正则匹配  
4. ~* 为不区分大小写匹配
5.!~和!~*分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配
 

* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行

一些可用的全局变量
 

$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_name
$server_port
$uri

rewrite后面的flag可以是:
 

last
break
redirect
permanent
代码示例:
proxy_pass http://localhost:80;
proxy_set_header Host $host;

这里可以自动改变转发以后的域名信息,根据实际情况调整吧。
 

您可能感兴趣的文章:
nginx 日志分析的实例学习
Nginx日志模块分析详解
Nginx关闭日志的方法
Nginx日志分析 Nginx日志切割与Awstats配置
nginx日志配置、Nginx日志分割
nginx日志统计访问时间的例子
nginx日志配置文件的格式说明
一个分割ngnix网站日志的Shell脚本
nginx日志报大量400错误的解决方法
nginx关闭favicon.ico日志记录的方法
nginx与apache日志格式的区别
nginx日志中记录cookie的实现方法
修改nginx访问日志的时间格式的方法
Nginx日志中过滤关键字的写法
nginx 日志分析实例


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3