Nginx 核心模块与配置实践

2019-12-29  本文已影响0人  香沙小熊

1、Nginx简介:

Nginx是一个高性能的WEB服务器,除它之外Apache、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能。

2.Nginx 基础配置与使用

设置站点

mkdir -p www/kpioneer
echo 'kpioneer is good man' > www/kpioneer/kpioneer.html

nginx.conf 中添加虚拟站点

server {
        listen 80;
        server_name www.kpioneer.com *.kpioneer.com kpioneer.*;
        location / {
          root /usr/www/kpioneer/;
        }
    }
nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

mac 本机配置IP映射

sudo vi /etc/hosts 
写入
123.57.251.156 www.kpioneer.com
123.57.251.156 good.kpioneer.com
image.png
    server {
        listen 80;
        server_name www.kpioneer.com *.kpioneer.com kpioneer.*;
        root /usr/www/kpioneer/;
        location / {
   #设置默认根目录文件
          index kpioneer.html; 
        }
    }
image.png image.png

静态文件与动态请求配置
在www文件夹中设置static文件目录

mkdir static

nginx.conf

    server {
        listen 80;
        server_name www.kpioneer.com *.kpioneer.com kpioneer.*;
        root /usr/www/kpioneer/;
        location /static {
          alias /usr/www/static/;
        }
        location / {
          index kpioneer.html;
        }
    }
image.png

root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的

root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径,比如:

location /i/ {
  root /data/w3;
}

请求 http://foofish.net/i/top.gif 这个地址时,那么在服务器里面对应的真正的资源是 /data/w3/i/top.gif文件

注意:真实的路径是root指定的值加上location指定的值 。

而 alias 正如其名,alias指定的路径是location的别名,不管location的值怎么写,资源的 真实路径都是 alias 指定的路径 ,比如:

location /i/ {
  alias /data/w3/;
}

同样请求 http://foofish.net/i/top.gif 时,在服务器查找的资源路径是: /data/w3/top.gif

static文件夹目录下

mkdir css
echo 'this is css file' > css/common.css
image.png
        location ~* \.(png|jpg|css|js)$ {
          root /usr/www/static/;
        }
        location = /baidu.html {
          proxy_pass http://www.baidu.com;
        }
image.png
防盗链配置
image.png

mac 本机配置IP映射

sudo vi /etc/hosts 
写入
123.57.251.156 www.kpioneer.com
123.57.251.156 good.kpioneer.com
123.57.251.156 www.bad.com
        location ~* \.(png|jpg|css|js)$ {
          root /usr/www/static/;
         valid_referers none blocked  *.kpioneer.com;
        if ($invalid_referer) {
         return 403;
        }
        }
image.png
防盗链 www.bad.com 的请求获取不到图片
image.png
配置黑名单
cd /usr/local/nginx/conf
echo 'deny 172.16.240.126;' >>ip.black

在nginx.conf进行配置

 include       ip.black;
限速
location / {
            proxy_pass http://localhost:8999/;    #转发到http://localhost:8999
            limit_conn one 10;    #限制并发连接数
            limit_rate 200k;    #限制最高下载速度
            limit_rate_after 1000k;    #下载到指定的文件大小之后开始限速
        }
上一篇下一篇

猜你喜欢

热点阅读