工作生活

nginx笔记(三)

2019-06-30  本文已影响0人  蜡笔没了小新_e8c0

1.rewrite

Syntax:rewrite regex replacement [flag];
Default:—
Context:server,location,if

1.1 flag类型

1.1.1 示例


server {
    listen       86;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    root /opt/app/code;
    location ~ ^/break {
        rewrite ^/break /test/ break;
    }

    location ~ ^/last {
        rewrite ^/last /test/ last;
    }

    location /test/ {
        default_type application/json;
        return 200 '{"status":"success"}';
    }
}

这里访问break显示404,last会显示test的内容。是由于last相当于重新请求了一次url请求,而break会到/opt/app/code目录下查找test文件,由于没有该文件,所以显示404。

2.secure_link_module

Syntax:secure_link expression;
Default:—
Context:http,server,location

Syntax:secure_link_md5 expression;
Default:—
Context:http,server,location

2.1 示例

#!/bin/sh
#
#Auth:
servername="203.195.133.72:87"
download_file="/download/web.jpg"
time_num=$(date -d "2019-10-01 00:00:00" +%s)
secret_num="ljc"


res=$(echo -n "${time_num}${download_file} ${secret_num}"|openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =)
echo "http://${servername}${download_file}?md5=${res}&expires=${time_num}"
server {
    listen       87;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    root /opt/app/code;

    location / {
        secure_link $arg_md5,$arg_expires;
        secure_link_md5 "$secure_link_expires$uri ljc";
        if ($secure_link = "") {
           return 403;
        }

        if ($secure_link = "0") {
           return 410;
        }
    }

3.geoip_module

yum install nginx-module-geoip

load_module "modules/ngx_http_geoip_module.so";
load_module "modules/ngx_stream_geoip_module.so";

#!/bin/sh
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

3.1 http_geoip_module使用场景

4.Https

4.1 生成Ca证书

在nginx下创建ssl_key文件,在ssl_key文件下执行 openssl genrsa idea -out ljc.key 1024 命令。此时该目录下就会出现ljc.key目录。

生成key

执行 openssl req -new -key ljc.key -out ljc.csr 命令,并填写信息。

csr

执行 openssl x509 -req -days 3650 -in ljc.csr -signkey ljc.key -out ljc.crt 命令。

CA

4.2Nginx的HTTPS语法配置

Syntax:ssl on | off;
Default:ssl off;
Context:http,server

Syntax:ssl_certificate file;
Default:—;
Context:http,server

Syntax:ssl_certificate_key file;
Default:—;
Context:http,server

4.3 测试CA

server
{
   listen   443 ssl;    //这里是和老版本的有所不同(原来使用ssl on)
   server_name IP;
   ssl_certificate /etc/nginx/ssl_key/ljc.crt;
   ssl_certificate_key /etc/nginx/ssl_key/ljc.key;

   index index.html index.htm;
   location / {
        root /opt/app/code;
   }
}

5.Lua

yum install Lua

5.1 Nginx调用lua模块指令

模块指令
上一篇下一篇

猜你喜欢

热点阅读