一直听说过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. 文件格式PDF

    pdf(Portable Document Format的简称,意为“便携式文档格式”),是由Adobe Systems用于与应用程序.操作系统.硬件无关的方式进行文件交换所发展出的文件格式.PDF文 ...

  2. HighCharts开发说明及属性详解

    一.HighCharts开发说明: HighCharts 开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题 ...

  3. 使用 tar 命令管理存档文件

    tar命令用于将大型文件集汇集为一个文件(存档) tar的三种操作:c(创建存档).t(列出存档的内容).x提取存档 tar的常用选项:f(要操作的存档文件名).v(可视化操作) 创建压缩的tar存档 ...

  4. Linux功能-环境变量

    linux系统中有很多重要的环境变量,我们可以用env命令查看它们. 变量是由固定的“变量名”与用户或系统设置的“变量值”两部分组成,也可以自行修改. [root@localhost ~]# env ...

  5. Oracle ->> 变量赋值 Demo

    刚学Oracle,学习学习别人的代码.这段代码时从下面的博文中摘取的:http://www.cnblogs.com/mq0036/p/4155774.html declare l_dept ; cur ...

  6. HTML5塔防游戏——《三国塔防》 - Yorhom's Game Box

    h3{ font-size:20px; } HTML5塔防游戏--<三国塔防> 游戏介绍: <三国塔防>是一款基于HTML5和Javascript的2D塔防游戏.游戏中除了塔防 ...

  7. Spark 1.6.1分布式集群环境搭建

    一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...

  8. z-index无效问题的解决方法

    在使用z-index这个属性之前,我们必须先了解使用z-index的必要条件: 1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:rela ...

  9. xpath选择器使用

    简单说,xpath就是选择XML文件中节点的方法. 所谓节点(node),就是XML文件的最小构成单位,一共分成7种. - element(元素节点)- attribute(属性节点)- text ( ...

  10. SQLServer2008 行转列3

    with a as ( select 日期,学号,名字, '语文' as 科目,语文 as 分数 from tsco union all select 日期,学号,名字, '数学' as 科目,数学 ...