Nginx中的root&alias文件路径及索引目录配置详解

Nginx中的root&alias文件路径及索引目录配置详解

root&alias文件路径配置 nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应。root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。 [root] 语法:root path 默认值:root html 配置段:http、server、location、if [alias] 语法:alias path 配置段:location 实例:
Nginx服务器中用于生成缩略图的模块配置教程

Nginx服务器中用于生成缩略图的模块配置教程

ngx_image_thumb模块生成缩略图ngx_image_thumb是nginx中用来生成缩略图的模块,生存缩略图的方法很多,本nginx模块主要功能是对请求的图片进行缩略/水印处理,支持文字水印和图片水印。支持自定义字体,文字大小,水印透明度,水印位置,判断原图是否是否大于指定尺寸才处理等等。 1. 编译方法 编译前请确认您的系统已经安装了libcurl-dev libgd2-dev libpcre-dev 依赖库 1.1 Debian / Ubuntu 系统举例
Nginx服务器作反向代理实现内部局域网的url转发配置

Nginx服务器作反向代理实现内部局域网的url转发配置

情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。并且公司入口路由最多只能做20个端口映射。肯定以后不够用。 然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就起到了“根据域名自动转发到相应服务器的特定端口”的效果,而路由器的端口映射做到的只是“根据不同端口自动转发到相应服务器的特定端口”,真是喜大普奔啊。 涉及的知识:nginx编译安装,nginx反向代理基本配置,路由端口映射知识,还有网络域名等常识。 本次实验目标是做到:在浏览器中输入xxx123.tk能访问到内网机器192.168.10.38的3000端口,输入xxx456.tk能访问到内网机器192.168.10.40的80端口。 配置步骤 服务器ubuntu 12.04
Nginx服务器中限制连接数与限制请求的模块配置教程

Nginx服务器中限制连接数与限制请求的模块配置教程

限制连接数的ngx_http_limit_conn_module模块 我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制。下面说说ngx_http_limit_conn_module 模块来实现该需求。该模块可以根据定义的键来限制每个键值的连接数,如同一个IP来源的连接数。并不是所有的连接都会被该模块计数,只有那些正在被处理的请求(这些请求的头信息已被完全读入)所在的连接才会被计数。 一. ngx_http_limit_conn_module指令解释 1. limit_conn_zone 语法:
详解Nginx服务器中map模块的配置与使用

详解Nginx服务器中map模块的配置与使用

map指令使用ngx_http_map_module模块提供的。默认情况下,nginx有加载这个模块,除非人为的 --without-http_map_module。 ngx_http_map_module模块可以创建变量,这些变量的值与另外的变量值相关联。允许分类或者同时映射多个值到多个不同值并储存到一个变量中,map指令用来创建变量,但是仅在变量被接受的时候执行视图映射操作,对于处理没有引用变量的请求时,这个模块并没有性能上的缺失。 一. ngx_http_map_module模块指令说明 map 语法: map $var1 $var2 { ... } 默认值: ― 配置段: http map为一个变量设置的映射表。映射表由两列组成,匹配模式和对应的值。 在 map 块里的参数指定了源变量值和结果值的对应关系。 匹配模式可以是一个简单的字符串或者正则表达式,使用正则表达式要用('~')。 一个正则表达式如果以 “~” 开头,表示这个正则表达式对大小写敏感。以 “~*”开头,表示这个正则表达式对大小写不敏感。
详解Nginx中的geo模块与利用其配置负载均衡的示例

详解Nginx中的geo模块与利用其配置负载均衡的示例

geo指令使用ngx_http_geo_module模块提供的。默认情况下,nginx有加载这个模块,除非人为的 --without-http_geo_module。 ngx_http_geo_module模块可以用来创建变量,其值依赖于客户端IP地址。 geo指令 语法: geo [$address] $variable { ... } 默认值: ― 配置段: http 定义从指定的变量获取客户端的IP地址。默认情况下,nginx从$remote_addr变量取得客户端IP地址,但也可以从其他变量获得。如
为Nginx服务器配置黑名单或白名单功能的防火墙

为Nginx服务器配置黑名单或白名单功能的防火墙

功能描述: 处在黑名单中的ip与网络,将无法访问web服务。 处在白名单中的ip,访问web服务时,将不受nginx所有安全模块的限制。 支持动态黑名单(需要与ngx_http_limit_req 配合) 具体详见下面的说明 文件配置方法说明 一、定义黑名单或白名单方法: 1. 配置格式 配置关键字 黑名单或白名单文件 存储空间 white_black_list_conf conf/white.list zone=white:2m;   | | | |   | | | --------------------------------------存储空间大小 这里是2m. 空间大小决定黑白名单的容量   | | ---------------------------------------------------------------------------------------------存储空间名   | ---------------------------------------------------------------黑名单或白名单配置文件路径   ------------------------------------------------配置命令 2. 配置关键字 white_black_list_conf。 3. 只能在http{} 中使用 4. white_black_list_conf可以配置多个 只需 zone=value 其中的value不同就可 5. 配置示例:
Nginx服务器基础的安全配置与一些安全使用提示

Nginx服务器基础的安全配置与一些安全使用提示

安全配置 1. nginx介绍 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发fastcgi管理进程处理,fastcgi管理进程选择cgi子进程处理结果并返回被nginx。 nginx涉及到两个账户,一个是nginx的运行账户,一个是php-fpm的运行账户。如果访问的是一个静态文件,则只需要nginx的运行账户对文件具有读取权限;而如果访问的是一个php文件,则首先需要nginx的运行账户对文件有读取权限,读取到文件后发现是一个php文件,则转发给php-fpm,此时则需要php-fpm账户对文件具有读取权限。 2.一些经验 结论 2.1. linux下,要读取一个文件,首先需要具有对文件所在文件夹的执行权限,然后需要对文件的读取权限。 2.2. php文件的执行不需要文件的执行权限,只需要nginx和php-fpm运行账户的读取权限。 2.3. 上传木马后,能不能列出一个文件夹的内容,跟php-fpm的运行账户对文件夹的读取权限有关。 2.4. 木马执行命令的权限跟php-fpm的账户权限有关。 2.5. 如果木马要执行命令,需要php-fpm的账户对相应的sh有执行权限。 2.6. 要读取一个文件夹内的文件,是不需要对文件夹有读取权限的,只需要对文件夹有执行权限。 3. Nginx服务器涉及到的安全配置 3.1  Nginx.conf的配置 3.2  php-fpm.conf的配置 3.3  nginx和php-fpm的运行账户对磁盘的权限配置 3.4  Php.ini的配置 4. 常见配置 4.1 禁止一个目录的访问 示例:禁止访问path目录
HipChat上传文件报未知错误的原因分析及解决方案

HipChat上传文件报未知错误的原因分析及解决方案

HipChat的功能类似于Campfire、Sazneo等在线协同工具,并且和Yammer以及Salesforce的Chatter等企业社交平台有一定相似之处。你可以为单个项目或者小组搭建自有的聊天室,也可以很方便的发起一对一聊天。这套 IM 系统还整合了团队文件管理和分享,拖拽就能完成保存操作。
通过Nginx服务器获取大文件MD5值的配置方法

通过Nginx服务器获取大文件MD5值的配置方法

HTTP协议新增了Content-MD5 HTTP头,但是nginx并不支持这个功能,而且官方也明确表示不会增加这项功能,为什么呢?因为每次请求都需要读取整个文件来计算MD5值,以性能著称的nginx绝对不愿意干出违背软件宗旨的事情。但是有些应用中,需要验证文件的正确性,有些人通过下载当前文件,然后计算MD5值来比对当前文件是否正确。不仅仅浪费带宽资源也浪费了大把的时间。有需求就有解决方案,网友开发了file-md5模块。 1. 下载模块file-md5
Nginx配置统计流量带宽请求及记录实时请求状态的方法

Nginx配置统计流量带宽请求及记录实时请求状态的方法

流量带宽请求状态统计 ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能. 功能特性 按域名、url、ip等等统计信息 统计总流量 统计当前带宽峰值带宽 统计总请求数量 1. 安装
Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

nginx代理做好了,缓存也配置好了,但是发现css、js、jpg这些静态文件统统都cached成功。但是偏偏页面文件依旧到源服务器取。 1. nginx不缓存原因 默认情况下,nginx是否缓存是由nginx缓存服务器与源服务器共同决定的, 缓存服务器需要严格遵守源服务器响应的header来决定是否缓存以及缓存的时常。header主要有如下: