一直听说过nginx的大名,也自己装过,但是未直接使用其各种牛X的功能。

今天试用了一下,只能用两字感叹:牛逼!比如它提供的配置检查功能,真是贴心极了,又比如我想要的静态内容浏览器端缓存功能,动态内容转发功能,都极其简单,不得不感叹啊。

我们先来看看nginx的各种能力,然后列出一些收集的nginx各项能力的配置以及一些调优的文章,供日后备用。

nginx我就不介绍了,大家都知道。其工作原理参考这里,里面也讲了nginx的模块开发http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html

安装也略过,apt-get可以轻松搞定。

nginx的能力一览:

1. 负载均衡

2. 反向代理:整合后端的各种服务器和语言(PHP, PERL, TOMCAT),反向代理缓存,静态内容浏览器缓存,动静分离

3. 安全:防盗链,防爬虫,HTTPS

4. 其它:同memcache结合干各种层次的缓存,限速,自动裁剪图片,请求合并,集成lua,玩法太多了……

这边列举一些常见的配置(均来源于网上),方便日后使用:

nginx配置测试(假设nginx已经加入path,下同): nginx -t

nginx平滑重启:首先找到master processor的pid,简单点用ps -ef | grep nginx,然后kill -HUP pid

负载均衡

  1. http
  2. {
  3. upstream  myserver {
  4. server   192.168.12.181:80 weight=3 max_fails=3 fail_timeout=20s;
  5. server   192.168.12.182:80 weight=1 max_fails=3 fail_timeout=20s;
  6. server   192.168.12.183:80 weight=4 max_fails=3 fail_timeout=20s;
  7. }
  8. server
  9. {
  10. listen       80;
  11. server_name  www.domain.com 192.168.12.189;
  12. index index.htm index.html;
  13. root  /ixdba/web/wwwroot;
  14. location / {
  15. proxy_pass http://myserver;
  16. proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
  17. include    /opt/nginx/conf/proxy.conf;
  18. }
  19. }
  20. }

虚拟主机

  1. http {
  2. server {
  3. listen          80;
  4. server_name     www.domain1.com;
  5. access_log      logs/domain1.access.log main;
  6. location / {
  7. index index.html;
  8. root  /web/www/domain1.com/htdocs;
  9. }
  10. }
  11. server {
  12. listen          80;
  13. server_name     www.domain2.com;
  14. access_log      logs/domain2.access.log main;
  15. location / {
  16. index index.html;
  17. root  /web/www/domain2.com/htdocs;
  18. }
  19. }
  20. include    /opt/nginx/conf/vhosts/www.domain2.com.conf;
  21. }
  1. server {
  2. listen          80;
  3. server_name     www.domain3.com;
  4. access_log      logs/domain3.access.log main;
  5. location / {
  6. index index.html;
  7. root  /web/www/domain3.com/htdocs;
  8. }
  9. }

反向代理,整合tomcat

  1. location / {
  2. proxy_pass http://localhost:8080;
  3. proxy_redirect off;
  4. proxy_set_header Host $host;
  5. proxy_set_header X-Real-IP $remote_addr;
  6. proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;
  7. proxy_connect_timeout 90;
  8. proxy_send_timeout 90;
  9. proxy_read_timeout 90;
  10. proxy_buffer_size 4k;
  11. proxy_buffers 4 32k;
  12. proxy_busy_buffers_size 64k;
  13. proxy_temp_file_write_size 64k;
  14. }

 反向代理,分离静态页面,并设置静态页面缓存时间(if-modify-since)

  1. location /img/ {
  2. alias /www/root/img/;
  3. expires 10d;
  4. }

设置Cache-Control

  1. add_header    Cache-Control  max-age=3600;

安全,防盗链

  1. location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
  2. valid_referers none blocked *.ixdba1.net ixdba1.net;
  3. if ($invalid_referer) {
  4. rewrite ^/ http://www.ixdba.net/img/error.gif;
  5. #return 403;
  6. }
  7. }
  8. location /images {
  9. root /opt/nginx/html;
  10. valid_referers none blocked *.ixdba1.net ixdba1.net;
  11. if ($invalid_referer) {
  12. return   403;
  13. }
  14. }

安全,HTTPShttp://nginx.org/cn/docs/http/configuring_https_servers.html

又一枚神器:nginx的更多相关文章

  1. 高并发神器 Nginx,到底该怎么学?

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 无论开发还是运维,工作上都会遇到性能优化.高并发的问题,而Nginx是一个万能药,它可以在百万并发连接下实现高吞吐量的 We ...

  2. 前后端分离不可缺少的神器 NGINX

    样例讲解 1:安装工具包 wget.vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake ...

  3. 神器 Nginx 的学习手册 ( 建议收藏 )

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 ...

  4. 为什么 Nginx 比 Apache 更厉害?

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 为什么Nginx在处理高并发方面要优于httpd,我们先从两种web服务器的工作原理以及工作模 ...

  5. Qt on Android 核心编程

    Qt on Android 核心编程(最好看的Qt编程书!CSDN博主foruok倾力奉献!) 安晓辉 著   ISBN 978-7-121-24457-5 2015年1月出版 定价:65.00元 4 ...

  6. ASP.NET Core 介绍和项目解读

    标签: ASP.NETCore 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目 ...

  7. NET Core 介绍

    NET Core 介绍 标签: ASP.NETCore 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP ...

  8. 《Qt on Android核心编程》介绍

    <Qt on Android核心编程>最终尘埃落定.付梓印刷了. 2014-11-02更新:china-pub的预售链接出来了.折扣非常低哦. 封面 看看封面的效果吧,历经几版,最终就成了 ...

  9. flask项目部署到阿里云 ubuntu16.04

    title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...

随机推荐

  1. swift:创建九宫格

    九宫格的创建是有规律可循的,每一个格子的水平和竖直方向的间隔是固定的,通过计算每一个格子的位置,然后把它们依次放到视图中即可. 一般的步骤为: 1.设置格子的总个数和每一列的格子数 2.求格子的间隔: ...

  2. javascript Klass 实现

    var Klass=function(Parent,props){ var Child,F,i; Child=function(){ if(Child.uber && Child.ub ...

  3. Lantern免费使用教程【转】

    转自:http://www.mfbuluo.com/13710.html 自从谷歌去年退出中国后,可能是意识到中国市场的潜力,所说这款Lantern免费的软件,背后有谷歌的资助,这一点部落无法肯定. ...

  4. Json工具类 - JsonUtils.java

    Json工具类,提供Json与对象之间的转换. 源码如下:(点击下载 - JsonUtils.java . gson-2.2.4.jar ) import java.lang.reflect.Type ...

  5. poj - 2386 Lake Counting && hdoj -1241Oil Deposits (简单dfs)

    http://poj.org/problem?id=2386 http://acm.hdu.edu.cn/showproblem.php?pid=1241 求有多少个连通子图.复杂度都是O(n*m). ...

  6. [POJ3264]Balanced Lineup(RMQ, ST算法)

    题目链接:http://poj.org/problem?id=3264 典型RMQ,这道题被我鞭尸了三遍也是醉了…这回用新学的st算法. st算法本身是一个区间dp,利用的性质就是相邻两个区间的最值的 ...

  7. leetcode:House Robber(动态规划dp1)

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  8. CSS的display属性

    网页设计中最常用的标签p.div.h1-h6(默认为块级元素),span(默认为内联元素) 内联,内嵌,行内属性标签: 1.默认同行可以继续跟同类型标签: 2.内容撑开宽度 3.不支持宽高 4.不支持 ...

  9. mongodb 物理删除数据

    刚开始用mongodb的时候,感觉很好用,速度很快,不过后面就遇到一个问题,数据物理内存一直增加,删除表也不管用. 然后网上找了各种办法,最后发现一个办法管用,就是物理删除存储数据. 操作如下: 1. ...

  10. CSS3之边框样式(动画过渡)

    简述 CSS3中transition属性定义了过渡,我们可以使用它来辅助我们实现一个边框样式的动画过渡. 简述 transition 定义和用法 语法 实现 效果 源码 transition 定义和用 ...