首页 存档 技术 查看内容

使用Nginx搭建静态资源服务器【css/js/img】

2018-3-30 13:00 |来自: 互联网 1098 0

摘要: 一、Nginx概述 1.Nginx简介 解决基于进程模型产生的C10k问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万现状。2006年俄罗斯编写。全称为engine X,缩减合并称为nginx。官方站点:http://nginx.org/ ...

一、Nginx概述

1.Nginx简介

解决基于进程模型产生的C10k问题,请求时即使无状态连接如web服务都无法达到并发响应量级一万现状。2006年俄罗斯编写。全称为engine X,缩减合并称为nginx官方站点:http://nginx.org/2013年发出企业版Nginx Plus

二次发行版:tengine, OpenResty… …

2.Nginx的特性

1)模块化设计、较好扩展性;早期不支持模块的动态装卸载

2)高可靠性:基于master/worker模式

master:负责启动服务,分析配置文件,父子启动子进程和worker进程

worker:真正响应用户请求进程

3)支持热部署(平滑迁移)不停机更新配置文件、更换日志、更新服务器程序版本;

4)内存消耗低:10000个keep-alive连接模式下的非活动连接仅消耗2.5M内存;

5)支持event-driven事件驱动模型, aio一步驱动机制, mmap内存映射

3.Nginx基本功能

1) 静态资源的web服务器;

2) http协议的反向代理服务器;

3) pop3, smpt,imap4等邮件协议的反向代理;

4)能缓存打开的文件(元数据:文件的描述符等等信息

5)支持FastCGI(php-fpm), uWSGI(Python WebFramwork)等协议机制,实现代理后端应用程序交互

6)高度模块化(非DSO机制)

模块类型:

core module

核心公用模块

Standard HTTP modules

标准(核心)HTTP模块;自动编译进程序不止一个

Optional HTTP modules

可选HTTP模块

Mail modules

邮件模块

3rd party modules

第三方模块,在编译时需手动指明加载方式加载

7)支持过滤器,例如zip,SSI

8)支持SSL加密机制

9) web服务相关的功能:虚拟主机(server)、keepalive、访问日志(支持基于日志缓冲提高其性能)、urlrewirte、路径别名、基于IP及用户的访问控制、支持速率**及并发数**;

……

4.Nginx的基本架构master/worker

master/worker模型:一个master进程可生成一个或多个worker进程;每个worker基于时间驱动机制可以并行响应多个请求

master:加载配置文件、管理worker进程、平滑升级,...

worker:http服务,http代理,fastcgi代理,...

事件驱动:epoll(Linux),kqueue(FreeBSD), /dev/poll(Solaris)

消息通知:select,poll, rt signals

支持sendfile, sendfile64

支持AIO,mmap

配置文件conf/nginx.conf

#user nobody; worker_processes 1;#推荐worker数为cpu核数,避免cpu不必要的上下文切换 events {

#表示每个worker进程所能建立连接的最大值

#一个nginx最大的连接数max=worker_connections*worker_processes;

#对于http请求本地资源最大并发数量为max

#如果http作为反向代理,最大并发数为max/2。因为每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。

worker_connections 1024;

}

http

{

include mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;

keepalive_timeout 65;

server {

listen 80;

server_name localhost;

#charset koi8-r;

access_log logs/host.access.log main;

location / { root html; index index.html index.htm; }

# serve static files(css|js|image..)

# location ~ ^/(images|javascript|js|css|flash|media|static)/

{ root E:\svn\web;

access_log off;

expires 30d;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

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

}

}


本文转载于微信公众号: JavaEE企业级开发(jee-evangelists),更多微信文章请扫描关注公众号:

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部