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
下一篇 2016-12-05

相关推荐

  • linux 根文件系统层级FHS

    下面介绍认识一下FHS FHS: Filesystem Hierarchy  Standard /bin:所有用户可用的基本命令程序文件; /sbin:供系统管理使用的工具程序; /boot:引导加载器必须用到的各静态文件: kernel,   initramfs(initrd),  grub 等 dev:存储特殊文件或设备文件…

    Linux干货 2016-10-28
  • shell脚本编程入门(一)

    概述 shell脚本就像是早期DOS年代的批处理文件(.bat),最简单的功能就是将许多命令写在一起,让用户很轻松能够一下子处理复杂的操作(执行一个脚本就能够一次执行多个命令)。而shell脚本更提供数组、循环、条件与逻辑判断等功能,让用户也可以直接以shell来编写程序,而不必使用类似C语言等传统程序编写的语法。 shell脚本基础 shell脚本是包含一…

    Linux干货 2016-08-15
  • N28-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    2017-12-17
  • linux学习总结-linux基础(之二)

    六、在Linux基础目录命名法则及功用 根据FHS(http://www.pathname.com/fhs/)的官方文件指出, 他们的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。 也就是说,FHS的重点在于规范每个…

    Linux干货 2016-09-23
  • find 详解

    find 命令基本用法:         find pathname [opotions] [-print | -exec | -ok …] 1、find 基本参数:         pa…

    Linux干货 2016-12-26
  • 2016/10/19作业:软链接与硬链接的区别

    软链接和硬链接的区别 linux中链接分为两种,一种是硬链接(Hard Link),一种是符号链接(Symbolic Link),其中,符号链接又称为软链接。 硬链接: 在Linux文件系统中 ,磁盘中的所有文件都有一个编号,这个编号称为索引节点(Inode)。在Linux中,多个同一索引节点可以有多个文件名,这就是硬链接。硬链…

    Linux干货 2016-10-20