当前位置:网络安全 > 七、Nginx学习笔记七Nginx的Web服务器

七、Nginx学习笔记七Nginx的Web服务器

  • 发布:2023-10-06 06:10

-->
用户www;
工作进程 1;
error_log /usr/local/nginx/logs/error.log crit;
pid /usr/local/nginx/logs/www.sychzs.cn;
活动{
工人连接 64;
}
http {
包括/usr/local/nginx/conf/mime.types;
default_type 应用程序/八位字节流;
#字符集gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
Large_client_header_buffers 4 32k;
proxy_buffer_size 16k;
proxy_buffers 4 16k;
keepalive_timeout 60;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
proxy_cache_path //usr/local/nginx/proxy_cache_dirlevels=1:2keys_zone=cache_one:200m inactive=1d max_size=30g;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp; gzip 打开;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_版本 1.0;
gzip_comp_level 2;
gzip_types 文本/普通应用程序/x-javascript 文本/css 应用程序/xml;
gzip_vary 开启; client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
发送文件;
tcp_nopush on;
tcp_nodelay on;
#设置虚拟主机
#include /usr/local/nginx/conf/vhost/www.sychzs.cn;
包括/usr/local/nginx/conf/vhost/www.sychzs.cn; }

Nginx.conf

上游 192.168.1.101 {
服务器192.168.1.101:8080;
服务器192.168.1.100:8080;
# hash_method crc32;
}
服务器{
听80;
服务器名称 192.168.1.101;
字符集 utf-8;
地点 / {
根 html;
索引index.html索引.htm;
proxy_pass http://192.168.1.101;
proxy_set_header X-真实IP $remote_addr;
client_max_body_size 100m;
}
位置 ~ .(jpe?g|png|gif)$ {
valid_referers 192.168.1.3;
if ($invalid_referer) {
返回 403;
}
} location ~ .*\.(gif|jpg|jpeg|bmp|png|js|css|swf|html)?$ # // 缓存文件类型
{ proxy_cache 缓存_one; proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1m;
proxy_cache_valid 任意 1m;
proxy_cache_key $host$uri$is_args$args; proxy_set_header 主机 $host;
proxy_set_header X-转发-For $remote_addr;
proxy_pass http://192.168.1.101;
} }

tomcat7

1。 Web 缓存的定义。
Web 缓存位于内容源Web 服务器和客户端之间。当用户访问 URL 时,Web 缓存服务器会去

后端Web源服务器检索要输出的内容,然后当下一个请求到来时,如果访问相同的URL

,Web缓存服务器直接将内容输出给客户端,而不需要再次向源服务器发送请求。 Web 缓存减少

减轻内容源Web服务器和数据库的负载,降低网络延迟,提高用户访问的响应速度,增强

用户体验。

2.Squid介绍
Web缓存服务器中,最著名的就是Squid Cache(简称Squid)。 Squid是一款流浪免费软件

代理服务器和网络缓存服务器。
Squid可以作为Web服务器的前端缓存服务器,缓存相关请求,以提高Web服务器的速度。
Squid 可以缓存万维网、域名系统和其他网络搜索,供一群人共享网络资源。
Squid 您可以通过过滤流量并通过 LAN 上的代理访问互联网来帮助网络安全。

3。 Nginx的Web缓存服务以及与Squid的比较
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi相关指令集组成
(1)proxy_cache相关指令集用于反向代理时缓存后端内容源服务器。 Nginx的proxy_cache缓存功能非常稳定,速度不逊色于Squid。

(2)fastcgi相关指令集主要用于缓存FastCGI动态程序。两者的功能基本相同。从功能上来说,

Nginx已经具备了Squid所具有的Web缓存加速功能,以及清除指定URL缓存的功能。而在性方面

性能方面,Nginx 对多核 CPU 的利用率比 Squid 好很多。另外,经过反向代理、负载均衡、健康检查,

端服务器故障转移、重写、易用性,Nginx也比Squid强大很多。这允许一个 Nginx 同时

用作“负载均衡服务器”和“Web缓存服务器”。

存储区域的名称。
(2)proxy_cache_path指令,语法proxy_cache_path路径[levels=number]

keys_zone=zone_name:zone_size[inactive=time] [max_size=size];
该命令用于设置缓存文件的存储路径。示例:
proxy_cache_path /data0/proxy_cache_dir级别=1:2keys_zone=cache_one:500m

非活动=1d max_size=30g;
path存储目录
levels指定缓存空间有两级哈希目录,第一级目录为1个字母,第二级目录为2个字母,

保存的文件名将类似于/data0/proxy_cache_dir/c/29/XXXXXX;
keys_zone参数用于命名该缓存区域。
500m 指1d内存缓存空间大小为500MB
inactive 表示如果1天内没有访问缓存数据,则会被删除。
max_size为30g,表示硬盘缓存空间为30G
(3) proxy_cache_methods命令语法:proxy_cache_methods[GET HEAD POST];
该命令用于设置缓存哪些HTTP方法,HTTP GET/默认缓存 HEAD 方法,不缓存 HTTP POST 方法
(4) proxy_cache_min_uses 指令语法:proxy_cache_min_uses the_number
该指令用于设置缓存的最小使用次数,默认值为 1
(5)proxy_cache_valid指令语法:proxy_cache_validreply_code [reply_code...]

time ;
该命令用于为不同返回状态码的URL设置不同的缓存时间。
示例:
proxy_cache_valid 200 302 10m ;
proxy_cache_valid 404 1m ;
设置200,302状态中的URL缓存10分钟,404中的URL状态缓存 1 分钟。
(6) proxy_cache_key指令语法:proxy_cache_key行;
该指令用于设置Web缓存的Key值,Nginx根据Key值md5哈希进行缓存。一般基于$host(域名

)、$request_uri(请求路径)等变量组合成proxy_cache_key。

5。 proxy_cache 完整示例
(1) 首先编译安装第三方 ngx_cache_purge 模块到 Nginx 中,使用 来清除指定 URL 的缓存
wget ftp://www.sychzs.cn /pub/software/programming/pcre/pcre-8.00.tar.gz
tar zxvf pcre-8.00.tar。 gz
cd pcre-8.00/
./configure
make && make install
cd ../

wget http://www.sychzs.cn/files/ngx_cache_purge-1.0.tar.gz
tar zxvf ngx_cache_purge-1.0.tar.gz

wget http://www.sychzs.cn/download/nginx-0.8.32.tar.gz
tar zxvf nginx-0.8.32.tar.gz
cd nginx-0.8.32/
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.0
--prefix=/usr/local/webserver/nginx --with-http_stub_status_module
-- with-http_ssl_module
make && make install
cd ../
(2) 然后,在同一分区中为 proxy_temp_path 和 proxy_cache_path 创建两个缓存目录

命令设置缓存路径。注意:指定的两个缓存路径必须在同一磁盘分区,不能跨分区。
mkdir -p /data0/proxy_temp_path
mkdir -p /data0/proxy_cache_path
(3) Nginx 配置文件(nginx.conf)适用于扩展名为 gif、jpg、jpeg、png、bmp 的图像、swf、js、css

为平板电脑、flash、javascript、css 文件启用 Web 缓存,其他文件不缓存。
示例代码如下:
http{
proxy_temp_path /data0/proxy_temp_path ;
#设置Web缓存区域名称为cache_one,内存缓存空间大小为500M,超过1天未

将自动清除。

#访问的缓存数据,硬盘缓存空间大小为30G
proxy_cache_path /data0/proxy_cache_pathlevels=1:2

keys_zone=cache_one:200m inactive=1d max_size=30g ;

服务器{
位置 ~ 。 s)$ ? oxy_cache_valid 200 304 12h;
  proxy_cache_valid 301 302 1m; proxy_cache_key $host $uri$is_args$args;
}

#用于清除缓存。假设 URL 是 http://www.sychzs.cn/test.gif。可以通过访问
#http://www.sychzs.cn/purge/test.gif 清除 URL 的缓存
位置 ~ /purge(/.*)
{
允许 192.168.0.0/16; }

缓存区域名称。
(2)fastcgi_cache_path指令
语法:fastcgi_cache_path路径[levels=number]keys_zone=zone_name:zone_size

[inactive=time] [max_size=size];
该命令用于设置缓存文件的存储路径,
示例:
fastcgi_cache_path /data0/fastcgi_cache_dirlevels=1:2

keys_zone=cache_one:500m inactive=1d max_size=30g;
注意,该命令只能在http标签中配置。
levels指定缓存空间有两级哈希目录,第一级目录为1个字母,第二层为2个字母,保存

undefined

fastcgi_temp_path、fastcgi_cache_path指令设置缓存路径。注:指定两个缓存路径

路径必须是同一磁盘分区,不能跨分区。
mkdir -p /data0/fastcgi_temp_path
mkdir -p /data0/fastcgi_cache_path
(2) 用于扩展的 Nginx 配置文件 (nginx.conf) 图片名为 gif、jpg、jpeg、png、bmp、swf、 js、css

Flash、JavaScript、CSS 文件启用 Web 缓存,其他文件不缓存。
http{
#fastcgi_temp_path 和 fastcgi_cache_path 指定的路径必须在同一个分区
fastcgi_temp_path /data0/fastcgi_temp_path ;
#设置Web缓存区域的名称为cache_one,即内存缓存空间大小为500MB,超过1天没有

自动清除

#访问的缓存数据,硬盘缓存空间大小为30G
fastcgi_cache_path /data0/fastcgi_cache_pathlevels=1:2

keys_zone=cache_one:200m 不活动=1d max_size=30g ;

?      #缓存不同的HTTP状态码设置不同的缓存时间
                                                                                                                     使用''s '' ' s     ‐   ‐ ‐ ‐ ‐ fastcgi_cache_valid 200 10m                                                                                                                             #设置Web缓存的key值,Nginx根据key来存储缓存value md5 hash,这里基于“FastCGI Service

#服务器的IP、端口、请求的URI组合成一个Key。
            fastcgi_cache_key 127.0.0.1:9000$requet_uri _pass 127.0.0.1:9000 ;
                    fastcgi_index index.php ;                                 包含 fcgi.conf -->

相关文章