一直听说过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. Linux内核通杀提权漏洞CVE-2016-5195 - 内核升级方法

    如题,对于脏牛(Dirty COW)漏洞的修复方式已经在上篇文章中有介绍过如何验证,这里对如何升级内核给出修复建议. (注意:为避免不必要的生产风险的发生,请审核自己的实际环境而决定采用什么方法进行升 ...

  2. OpenGL基础知识

    基本概念 透视(Perspective)变换(Transformation)投影矩阵(Projection Matrix):用于将3D坐标转换为2D屏幕坐标光栅化(Rasterization): 实际 ...

  3. sql 随笔 2015-08-07

    xls 导入数据库 --删除现有数据 DELETE FROM dbo.PhoneList --插入数据 insert into dbo.PhoneList --读取xls数据 ) , as [Enab ...

  4. 获取sde 工作空间 propertys

    // This example shows how to inspect and display different types of properties for a workspace. publ ...

  5. C#的运算符重载

    运算符重载看起来与标准静态方法声明类似,但它们使用关键字operator和运算符本身,而不是一个方法名: public static 返回类型 operator +(类型1 变量1,类型2 变量2) ...

  6. hadoop2的伪分布部署

    通过我们前面的操作,已经可以编译并且打包产生适合本机的hadoop包,目录是/usr/local/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0. 使 ...

  7. Bootstrap_CSS全局样式

    一.HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型.在你项目中的每个页面都要参照下面的格式进行设置. <!DOCTY ...

  8. 64位Ubuntu 13.04 安装Bochs 2.3.5

    bochs 2.3.5源码编译 网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题. 基本安装步骤 tar vxzf bochs-2.3.5.tar.gz cd bochs- ...

  9. 漫游Kafka设计篇之消息传输的事务定义

    之前讨论了consumer和producer是怎么工作的,现在来讨论一下数据传输方面.数据传输的事务定义通常有以下三种级别: 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输. 最 ...

  10. 总结swift 1.2适配swift2.0遇到的改变

    swift1.2适配swift2.0 以下列举的是我在项目中遇到的需要修改的,基本常见的问题就没有罗列了. 1.find函数变成了为indexOf 2.sort变成了sortInPlace 3.sor ...