又一枚神器:nginx
一直听说过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
负载均衡
- http
- {
- upstream myserver {
- server 192.168.12.181:80 weight=3 max_fails=3 fail_timeout=20s;
- server 192.168.12.182:80 weight=1 max_fails=3 fail_timeout=20s;
- server 192.168.12.183:80 weight=4 max_fails=3 fail_timeout=20s;
- }
- server
- {
- listen 80;
- server_name www.domain.com 192.168.12.189;
- index index.htm index.html;
- root /ixdba/web/wwwroot;
- location / {
- proxy_pass http://myserver;
- proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
- include /opt/nginx/conf/proxy.conf;
- }
- }
- }
虚拟主机
- http {
- server {
- listen 80;
- server_name www.domain1.com;
- access_log logs/domain1.access.log main;
- location / {
- index index.html;
- root /web/www/domain1.com/htdocs;
- }
- }
- server {
- listen 80;
- server_name www.domain2.com;
- access_log logs/domain2.access.log main;
- location / {
- index index.html;
- root /web/www/domain2.com/htdocs;
- }
- }
- include /opt/nginx/conf/vhosts/www.domain2.com.conf;
- }
- server {
- listen 80;
- server_name www.domain3.com;
- access_log logs/domain3.access.log main;
- location / {
- index index.html;
- root /web/www/domain3.com/htdocs;
- }
- }
反向代理,整合tomcat
- location / {
- proxy_pass http://localhost:8080;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forworded-For $proxy_add_x_forwarded_for;
- proxy_connect_timeout 90;
- proxy_send_timeout 90;
- proxy_read_timeout 90;
- proxy_buffer_size 4k;
- proxy_buffers 4 32k;
- proxy_busy_buffers_size 64k;
- proxy_temp_file_write_size 64k;
- }
反向代理,分离静态页面,并设置静态页面缓存时间(if-modify-since)
- location /img/ {
- alias /www/root/img/;
- expires 10d;
- }
设置Cache-Control
- add_header Cache-Control max-age=3600;
安全,防盗链
- location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
- valid_referers none blocked *.ixdba1.net ixdba1.net;
- if ($invalid_referer) {
- rewrite ^/ http://www.ixdba.net/img/error.gif;
- #return 403;
- }
- }
- location /images {
- root /opt/nginx/html;
- valid_referers none blocked *.ixdba1.net ixdba1.net;
- if ($invalid_referer) {
- return 403;
- }
- }
安全,HTTPShttp://nginx.org/cn/docs/http/configuring_https_servers.html
又一枚神器:nginx的更多相关文章
- 高并发神器 Nginx,到底该怎么学?
Java技术栈 www.javastack.cn 优秀的Java技术公众号 无论开发还是运维,工作上都会遇到性能优化.高并发的问题,而Nginx是一个万能药,它可以在百万并发连接下实现高吞吐量的 We ...
- 前后端分离不可缺少的神器 NGINX
样例讲解 1:安装工具包 wget.vim和gcc yum install -y wget yum install -y vim-enhanced yum install -y make cmake ...
- 神器 Nginx 的学习手册 ( 建议收藏 )
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Nginx 是一个高性能的 HTTP 和反向代理服务器,特点是占用内存少,并发能力强,事实上 ...
- 为什么 Nginx 比 Apache 更厉害?
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 为什么Nginx在处理高并发方面要优于httpd,我们先从两种web服务器的工作原理以及工作模 ...
- Qt on Android 核心编程
Qt on Android 核心编程(最好看的Qt编程书!CSDN博主foruok倾力奉献!) 安晓辉 著 ISBN 978-7-121-24457-5 2015年1月出版 定价:65.00元 4 ...
- 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 项目 ...
- NET Core 介绍
NET Core 介绍 标签: ASP.NETCore 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP ...
- 《Qt on Android核心编程》介绍
<Qt on Android核心编程>最终尘埃落定.付梓印刷了. 2014-11-02更新:china-pub的预售链接出来了.折扣非常低哦. 封面 看看封面的效果吧,历经几版,最终就成了 ...
- flask项目部署到阿里云 ubuntu16.04
title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...
随机推荐
- JavaWeb项目开发案例精粹-第4章博客网站系统-005action层
1. package com.sanqing.action; import java.util.Date; import java.util.Map; import com.opensymphony. ...
- 【原创】【Android New Features】—— 关于ADT 17的BuildConfig.DEBUG
在日常开发中,我们使用android.util.Log来打印日志,方便我们的开发调试.但是在打包发布时,需要手工把Log关闭,多少会有些不便,而且不排除打包者忘记关闭Log的情况.那么有没 ...
- 8天学通MongoDB
随笔分类 - MongoDB 双十一来了,别让你的mongodb宕机了 摘要: 好久没过来吹牛了,前段时间一直赶项目,没有时间来更新博客,项目也终于赶完了,接下来就要面临双十一这场惊心动魄的处女秀考验 ...
- SQL SERVER ->> BCP导出数据到平面文件
--开启xp_cmdshell sp_configure ‘show advanced options’, ; GO RECONFIGURE; GO sp_configure ‘xp_cmdshell ...
- windows下的文件遍历(使用CFindFile)
这个我一直都很想做了,前两天开始准备,查找了一下CFindFile的资料,然后把思路理清楚,就直接开始做了. 文件系统是一个操作系统以一部分,所以想文件操作,基本上就要依赖于操作系统提供的接口函数. ...
- html下select追加元素,IE下错误
var selectCtr=window.document.getElementById("lesson_up"); selectCtr.add(opt,selectCtr.opt ...
- lumen 使用 redis缓存
建议修改composer.json require 节点如下: "require": { "php": ">=5.5.9", &quo ...
- HDU 1548 (最基础的BFS了) A strange lift
这是一维的BFS,而且没有什么变形,应该是最基础的BFS了吧 题意: 有这样一个奇葩的电梯,你在第i层的时候你只能选择上或者下Ki层,也就是你只能从第i层到达i+Ki或者i-Ki层.当然电梯最低只能在 ...
- Web Forms vs Web MVC
MVC相对于WebForm来说更难学习,但性能优于WebForm,比较适合大型项目,开发成本较高,但耦合度低,易于维护,没有太多的现成控件,开发效率较低.对WebForm有基础的人反而不太容易学MVC ...
- Asp.Net验证码1
验证码html调用 验证码:<input name="> <img src="CodeHandler.ashx" id="imgCode&qu ...