又一枚神器: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开发>的个人部署版本,包含学习笔记. 开始 ...
随机推荐
- c#实现打印功能,可以设置纸张大小,字体和颜色等
/// <summary> /// 打印的按钮 /// </summary> /// <param name="sender"></par ...
- Echarts - js-20160611
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- linux poll
man poll: NAME poll, ppoll - wait for some event on a file descriptor SYNOPSIS #include <poll.h&g ...
- Lantern免费使用教程【转】
转自:http://www.mfbuluo.com/13710.html 自从谷歌去年退出中国后,可能是意识到中国市场的潜力,所说这款Lantern免费的软件,背后有谷歌的资助,这一点部落无法肯定. ...
- dojo 十 ajax dojo/_base/xhr
官方教程:Ajax with DojoAjax功能:1.从服务器加载静态数据2.从web服务中访问xml或json类型的数据3.将表单(form)数据发送到服务器4.刷新页面内容....Ajax在RI ...
- linux系统的目录讲解
还记得在前面介绍c h m o d命令时讲过,目录的权限位和文件有所不同.现在我们来看看其中的区别.目录的读权限位意味着可以列出其中的内容.写权限位意味着可以在该目录中创建文件,如果不希望其他用户在你 ...
- .htaccess的应用
今天下班后,同事问到这个东西的用法.我以前也没接触过,特地搜索了一下,现在保存方便以后使用. 1.首先判断服务器类型,服务器是否支持. 2.写法是否有错误. 3.需要的功能是否在.htaccess是否 ...
- .NET_Framework_version_history
http://en.wikipedia.org/wiki/.NET_Framework_version_history
- 成功的GIT开发分支模型和策略
详细图文并茂以及git flow工具解释参考: http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html 原文地址:http ...
- 深入.NET平台和C#编程 错题录
1.在C#中,关于文件操作相关的类说法正确的是(AB) <选择二项> A:FileInfo类提供了用于操作文件的实例方法 B:File类提供了用于操作文件的静态方法 C:Directory ...