nginx官方文档笔记3

为了让配置文件便于管理,可以分割配置到/etc/nginx/conf.d中,然后通过在nginx.conf中include

include conf.d/http;
include conf.d/stream;
include conf.d/exchange-enhanced

对于一些顶级指令,http,mail,stream,events,被称为上下文,可以组合其他指令


常用功能

1 虚拟主机 server

2 配置location  server->location

3 使用变量  $remote_addr $uri

4 返回state  return 400

5 重写url

6 重写response   response中字符串的替换

7 错误处理

user nobody; # a directive in the 'main' context

events {
    # configuration of connection processing
}

http {

    # Configuration specific to HTTP and affecting all virtual servers

    server {
        # configuration of HTTP virtual server 1

        location /one {
            # configuration for processing URIs with '/one'
        }

        location /two {
            root /tmp    // 搜索静态文件的根目录
        }
    
        location ~ \.html? { //~区分大小写的正则, (~*)不区分
            proxy_pass http://www.example.com;  // 代理
        }

        location /permanently/moved/url {
            return 301 http://www.example.com/moved/here; || return 200
        }// return可以被放到 location与server中
 }

    server {
        # configuration of HTTP virtual server 2
        location / {
            sub_filter     'href="http://127.0.0.1:8080/'    'href="https://$host/';
            sub_filter     'img src="http://127.0.0.1:8080/' 'img src="https://$host/';
            sub_filter_once on;
        }
     location /images/ {
        # Set the root directory to search for the file
        root /data/www;

        # Disable logging of errors related to file existence
        open_file_cache_errors off;

        # Make an internal redirect if the file is not found
        error_page 404 = /fetch$uri;// 如果找不到就执行这个
    }

 }
  server {
    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; // last break
        // download/some/media/file are changed to /download/some/mp3/file.mp3.
        rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
      //download/some/media/file are changed to /download/some/mp3/file.ra

      return  403;
}}
stream { # Configuration specific to TCP and affecting all virtual servers server { # configuration of TCP virtual server 1 }}子指令上下文会自动继承父指令的一些设置,如果不想就去覆盖他

你可能感兴趣的:(nginx文档笔记)