Nginx 常见配置解析

结构上:

核心模块:HTTP模块、EVENT模块、MAIL模块。
基础模块:HTTP access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。
第三方模块:HTTP Upstream Request Hash模块。

功能上:

Handlers:处理请求,进行输出内容和修改headers信息等。
Filters:主要对其他处理模块输出的内容进行修改操作。
Proxies:Nginx的HTTP Upstream之类的模块,与后端服务如fastcgi等进行交互。

工作模式:

单工作进程
多工作进程

Nginx与Apache最大区别:

Nginx的模块直接编译进Nginx,属于静态编译方式,启动Nginx自动加载。
Apache将模块编译成一个so文件,需要在配置文件中指定是否加载。

静态文件处理:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        root /web/wwwroot/;
        expires 30d;       -----指定静态文件过期时间
    }

配置获取nginx的运行状态:

location /NginxStatus {
        stub_status    on;    ---启用StubStatus的工作状态统计功能
        access_log    logs/NginxStatus.log;    ---指定访问日志文件
        auth_basic    "NginxStatus";    ---Nginx的一种认证机制
        auth_basic_user_file    ../htpasswd;    ---指定认证密码文件
    }
# /usr/local/apache/bin/htpasswd -c /usr/local/nginx/conf/htpasswd webadmin

Nginx信息:
Active connection: 1      ----当前活跃的链接数
server accepts handled reqests       
 393411  393411  393799      ---总共处理了393411个连接,创建393411次握手,处理393799个请求
reading: 0  Writiong: 1 Waiting: 0

Nginx启动、关闭重启

QUIT:处理完当前请求后关闭进程。
HUP:重新加载配置没平滑重启Nginx。
USR1:Nginx日志切换,重亲打开一个日志文件。
USR2:平滑升级执行。
WINCH:从容关闭工作进程。

nginx反向代理根问题测试:

访问192.168.8.104:  192.168.8.103目录test下有index.html测试用

location / {
        proxy_pass http://192.168.8.103/test;
    }
出现301

location / {
        proxy_pass http://192.168.8.103/test/;
    }   
正常访问

访问192.168.8.104/test/test.html:

location /test {
        proxy_pass http://192.168.8.103/app;
    }
访问到/app/test.html

location /test/ {
        proxy_pass http://192.168.8.103/app;
    }
访问到/apptest.html

location /test {
        proxy_pass http://192.168.8.103/app/;
    }
 访问到/app//test.html

location /test/ {
        proxy_pass http://192.168.8.103/app/;
    }
访问到/app/test.html

location /test {
        proxy_pass http://192.168.8.103;
    }
访问到/test/test.html

location /test {
        proxy_pass http://192.168.8.103/;
    }
访问到//test.html

location /test/ {
        proxy_pass http://192.168.8.103;
    }
访问到/test/test.html

location /test/ {
        proxy_pass http://192.168.8.103/;
    }
访问到/test.html

总结 如果location路径是根,那么proxy_pass 路径必须加根。
     如果proxy_pass 没有路径, location路径会被完整的传递下来。
     如果proxy_pass有路径,location路径排除匹配所用的部分会完整的传递下来。

别名:

location /i {
    alias /var/www/html/imags/;    
}
url请求 /i/logo.gif 服务器会查找/var/www/html/imags/logo.gif
如果是root  会查找/var/www/thml/imags/i/logo.gif

location ~ ^/download/(.*)$ {
    alias /home/webdata/www/$1;
}
url请求 /download/ebook.tar.gz ,Nginx服务器会请求 /home/webdata/www/ebook.tar.gz 文件
如果是root 会查找/home/webdata/www/ebook.tar.gz/download/ebook.tar.gz

 

rewrite:

语法: rewrite regex flag
默认:none
使用字段:server 、 location 、 if
flag种类:
last:rewrite之后搜索相应的URI或location
break:终止匹配,不在匹配后面规则
redirect:返回302,游览器显式跳转后的地址
permanent:返回301,游览器显式跳转后的地址

重定向实现域名过度:
server {
    server_name  com;
    if ($host != ' {
        rewrite ^/(.*)$  permanent; 
    }   

}

缓存:

proxy_cache_path /backup/proxy_cache_dir
levels=1:2
keys_zone=cache_one:4096m
inactive=1d 
max_size=3g;
proxy_temp_path /backup/proxy_temp_dir;  需跟proxy_cache_path分在一个磁盘
location中配置
proxy_cache cache_one;
proxy_cache_valid 200 304 12h
proxy_cache_key $host$url$is_args$args;

清楚缓存:

location ~ /purge(/.*)
{
    allow 127.0.0.1;
    allow 192.168.88.0/24
    deny all;
    proxy_cache_purge cache_one $host$1$is_args$args
}
 的缓存可以通过访问
 清除

原创文章,作者:心肝坏了,如若转载,请注明出处:http://www.178linux.com/47953

(0)
心肝坏了心肝坏了
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • LVM

       本节主要为raid和LVM相关 一、作业 1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项 2、写一个脚本,完成如下功能: (1) 列出当前系统识别到的所有磁盘设备 (2) 如磁盘数量为1,则显示其空间使用信息 …

    Linux干货 2016-08-30
  • 文件查找工具

    文件查找     我们常常需要知道哪个文件放在哪里,才能够对该文件进行一些修改或维护等动作。 有些时候某些软件配置文件的文件名是不变的,但是各发行版 放置的目录则不同。 此时就得要利用一些搜寻指令将该配置文件的完整文件名捉出来,这样才能修改。     比较实用的两个文件查找工具l…

    Linux干货 2016-08-21
  • Shell脚本编程之循环(for、while、until)

    Shell脚本编程之循环(for、while、until)   一、循环语句的对比: for语句 while语句 until语句 执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束 CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”…

    Linux干货 2016-08-18
  • 正则表达式及grep使用

    正则表达式分为:“基本正则表达式 BRE”跟“扩展正则表达式 ERE” 基本正则表达式:     (1)字符匹配               "."任意单个字符 &nbs…

    Linux干货 2016-07-10
  • haproxy实现rabbitmq负载均衡

    RabbitMQ简介: 1、是实现AMQP(高级消息队列协议)的消息中间件的一种。2、主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。 一般提到 RabbitMQ 和消息,都会用到以下一些专有名词:(1)生产(Producing)意思就是发送。发送消息的程序就是一个生产者(produce…

    Linux干货 2017-06-29
  • 马哥教育网络班19期第十二周课程练习

    1、请描述一次完整的http请求处理过程; 一次完整的http请求处理过程如下: (1) 建立或处理连接:接收客户端的请求,建立连接,或是拒绝其请求 (2) 接收请求: 接收来自于网络的请求报文中对某资源的一次请求的过程时,web服务器也分几种模型对并发请求进行响应:             &nb…

    Linux干货 2016-08-11