一台nginx服务器开了目录浏览功能。方便下载文件。使用时发现,目录内的文件,创建时间比实际时间少8小时。查看官方文档:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html ,找到这个:autoindex_localtime,作用:是否用本地时间显示时间。默认:否,使用UTC时间。设置 autoindex_localtime on 问题解决。
缘由经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考NginxYii2server {
charset utf-8;
client_max_body_size 128M;
listen 80;
server_name yii.local.test;
root&n
服务器经常会产生各种各样的日志文件,我们需要定期清理日志的分类系统日志应用日志系统日志例如系统的history 历史信息 crontab的运行日志 一般系统日志系统都帮我们运维好了,不需要额外配置应用日志例如nginx 的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据工具logrotatelogrotate是什么logrotate是大多数linux系统自带的日志切割工具logrotate的适用场景logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)实战按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」最后代码如下(本人ubuntu系统)/data/logs/nginx/*.log {
&nb
每次都很容易忘记Nginx的变量,下面列出来了一些常用$remote_addr //获取客户端ip
$binary_remote_addr //客户端ip(二进制)
$remote_port //客户端port,如:50472
$remote_user //已经经过Auth Basic Module验证的用户名
$host //请求主机头字段,否则为服务器名称,如:blog.sakmon.com
$request //用户请求信息,如:GET ?a=1&b=2 HTTP/1.1
$request_filename //当前请求的文件的路径名,由root或alias和URI request组合而成,如:/2013/81.html
$status //请求的响应状态码,如:200
$body_bytes_sent //&nbs
最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了方法一:直接在LB机器上封IP1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端$ sudo vim /etc/nginx/blocksip.conf
deny 180.168.74.26;
deny 91.212.45.0/24;2. 在nginx.conf中包含这个文件$ sudo vim /etc/nginx/nginx.conf
http {
.......
.......
include /etc/nginx/blocksip.conf;
}3.重启服务$ sudo /etc/init.d/nginx reload方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)这个时候我们不能通过$remote_addr获取ip
Nginx的return关键字属于HttpRewriteModule模块:语法:return http状态码
默认值:无
上下文:server,location,if
该指令将结束执行直接返回http状态码到客户端.
支持的http状态码:200, 204, 400, 402-406, 408, 410, 411, 413, 416 , 500-504,还有非标准的444状态码.使用方法:#不符合规则的返回403禁止访问location /download/ {
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 break;
return&
提高网站可用性,这个话题就太广了,就按照我想到的写几点了,以后想到了再加1)容灾备份 对于有点规模的网站,服务器都不止1台,最简单的就是代码分布在好几台机器上。 第一:可以起到备份的作用,一台坏了,可以马上切到其他机器上 第二:降低机器的压力,增加并发处理能力2)负载均衡 上面一点我们提到代码放在好几台机器上,根据每台的硬件配置情况,很多软件都可以实现 请求分发的(反向代理),例如nginx,lvs了。我常用的是ngnix。可以通过nginx配置后端服务器,并且可以指定每个服务器的权重,这样就可以分发请求。并且nginx还可以通过failover配置 后端机器出问题了 如何处理反向代理是什么东西?是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端3) 服务器多IP,DNS服务流量分发 这个操作可以在以下两
本日志内容来自互联网和平日使用经验,整理一下方便日后参考。正则表达式匹配,其中:* ~ 为区分大小写匹配* ~* 为不区分大小写匹配* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!-x用来判断文件是否可执行flag标记有:* last 相当于Apache里的[L]标记,表示完成rewrite* break 终止匹配, 不再匹配后面的规则* redirect 返回302临时重定向 地址栏会显示跳转后的地址* permanent 返回301永久重定向 地址栏会显示跳转后的地址一些可用的全局变量有,可以用做条件判断(待补全)$args$content_length$content_type$document_root$document_uri$host$http_user_agent$http_cookie$limit_rate$requ
1. 处理所有请求到单一入口 ( rewrite all requests to index.php with nginx )目前我们做开发一般都是单入口的,所以都会使用web服务器做重定向到入口文件rewrite ^/(.*)$ /index.php?/$1 last;在nginx中加入这项配置就好了或者可以使用htaccess文件RewriteRule . index.php2.Nginx出现的413 Request Entity Too Large错误这个错误一般在上传文件的时候出现,打开nginx主配置文件nginx conf,找到http{}段,添加或者修改client_max_body_size 2m;然后重启 reload nginx 服务