使用变量及包含来简化Nginx的配置管理
2014-06-27 12:15:00 来源:我爱运维网 评论:0 点击:
至于nginx服务器配置,网上有很多教程了,这里就不介绍了。但nginx的配置特别是多虚拟主机等复杂的配置管理,还是比较困难的,比较容易出错...
至于nginx服务器配置,网上有很多教程了,这里就不介绍了。但nginx的配置特别是多虚拟主机等复杂的配置管理,还是比较困难的,比较容易出错。这里给大家介绍使用变量及包含来简化Nginx的配置管理。
没有使用变量的nginx虚拟主机配置文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
server { listen 80; server_name blog.5iops.com; root /www ; access_log /www/logs/5iops .access.log; location / { index index.php index.html; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www $fastcgi_script_name; include fastcgi_params; } } |
仔细的观察上边的配置,不难发现,/www这个路径出现了3次,如果要配置10个,100个虚拟主机,那就得写30遍,300遍路径,如果中途需要做相关修改,那工作量就更大了,而且很容易出错。然而换成变量,那就方便了。
上边的配置使用变量后,可以拆分为两个部分:
1)公用部分,新建一个php.conf配置文件,内容如下
1
2
3
4
5
6
7
|
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name; include fastcgi_params; } |
2)定制部分,再新建一个虚拟主机的配置文件blog.5iops.com.conf,内容如下:
1
2
3
4
5
6
7
8
9
10
11
|
server { listen 80; server_name blog.5iops.com; set $root /www ; #声明$root变量 root $root; access_log $root /logs/blog .5iops.com.access.log; location / { index index.php index.html; } include php.conf; #加载配置文件 } |
上边的代码,有以下几点改变:
1)把网站根目录的路径通过set操作赋值给了$root变量
2)分离公用的配置,在需要时include加载进来
基于上边的思想,我们可以再添加一个static.conf配置文件,用来配置静态文件的缓存时间,与一些反盗链的规则
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#防止5iops.com以外的域名盗用本站资源 location ~ .*\.(gif|jpg|png|swf|flv|rar|zip)$ { valid_referers none blocked *.5iops.com 5iops.com; if ($invalid_referer) { return 403; #rewrite ^/ http://www.5iops.com/images/default/logo.gif; } } #静态资源缓存时间 location ~ .*\.(gif|jpg|jpeg|png|bmp|ico|swf)$ { expires 30d; } location ~ .*\.(js|css)$ { expires 1d; } |
nginx配置通过使用变量,配置文件可以很简洁,很容易进行管理,还容量出错与互相干扰。
上一篇:值得学习借鉴的Nginx性能优化点
下一篇:亿级Web系统搭建——单机到分布式集群
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)