Nginx常用功能以及配置

随笔2个月前发布 木心
20 0 0

Nginx 的常用功能

1. 正向代理

2.反向代理

3.静态资源服务器/配置下载速度

4.负载均衡/负载均衡算法

5.配置白名单/黑名单

一.Nginx 常用到的命令

进入到下面的目录,然后使用命令

cd /usr/local/nginx/sbin

1.1 查看Nginx版本号

./nginx -v

1.2 启动Nginx

./nginx

1.3 关闭Nginx

./nginx -s stop

1.4 重新加载Nginx

./nginx -s reload

1.5 重启Nginx

./nginx -s reopen

1.6 优雅停止Nginx

./nginx -s quit

1.7 测试配置文件是否正确

./nginx -t

3 配置文件

配置文件所在位置:

/usr/local/nginx/conf/nginx.conf


二.配置文件结构

由全局块+events块+http块组成

Nginx常用功能以及配置

全局块:主要配置全局的配置项:比如进程数日志文件pid

Event块:配置最大连接数,需要根据项目实际需要进行配置

Nginx常用功能以及配置

http块:项目中需要配置的核心区域。比如代理、缓存和日志定义等绝大多数功能,http块又包括全局块和server块两个部分。

2.1 http全局块

http全局块配置的指令包括文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。

2.2 server块

每个http块可以包括多个server块,而每个server块就相当于一个虚拟主机。

每个server块也可以分为全局server块,以及可以同时包含多个location块。

2.2.1 全局server块

最常见的配置时本虚拟主机的监听配置和本虚拟主机的名称或IP配置。

2.2.2 location块

一个server块可以配置多个location块。

这块的主要作用是基于Nginx服务器接收到的请求字符串(例如server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如前面的/uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。


代理配置:

   正向代理(forward proxy):通过nginx进行一次访问代理,nginx中配置的服务地址其实是一个访问真是服务的一个客户端地址。结果是由代理的客户端服务访问的最终服务器返回。

Nginx常用功能以及配置

正向代理的配置

例如:http {

resolver 8.8.8.8;

server {

     listen 8088;

     location / {

     proxy_pass http://$http_host$request_uri;

    }

 }

}

Nginx实现代理上网,有三个关键点必须注意,其余的配置跟普通的nginx一样

1.增加dns解析resolver/dns服务器

2.增加无server_name名的server

3.proxy_pass指令

resolver表示DNS服务器

location表示匹配用户访问的资源,并作进一步转交和处理,可用正则表达式匹配

proxy_pass表示需要代理的地址

$http_host表示用户访问资源的主机部分

$request_uri表示用户访问资源的URI部分。

如,http://nginx.org/download/nginx-1.6.3.tar.gz,则httphost=nginx.org,request_uri=/download/nginx-1.6.3.tar.gz。

反向代理:

客户端无法感知代理,因为客户端访问网络不需要配置,只要把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端。

Nginx常用功能以及配置

Nginx常用功能以及配置

负载均衡:

负载均衡策略有以下几种中:轮询/权重/ip_hash/最少连接数

配置如下:

Nginx常用功能以及配置

静态资源服务器:

# nginx静态资源配置–静态服务器(也是最简单的配置)

server {

listen 80; #监听端口号

server_name localhost; #主机名

index index.html index.htm; #默认页名称

root html; #静态资源存放目录

location / { #匹配路径

root html; #文件根目录

index index.html index.htm; #默认页名称

    }

error_page 500 502 503 504 /50x.html; #报错编码对应页面

    location = /50x.html {

        root html;

    }

}

设置限速:

server{

……………..

location {

………

limit_conn one 5;          #连接数限制(线程)

l imit_rate_after:1024k;    #当下载文件达到这个值时开始限速

limit_rate 50k;            #带宽限制

……..

}

……………..

}

配置黑名单/白名单:黑白名单是由关键字: allow/deny 来处理。

 

#定义IP黑名单

    geo $block {

        default 0;

#假设1.2.3.4是要加入黑名单的IP

        1.2.3.4 1;

    }

    server {

        …

        location / {

#黑名单规则

            if ($block) {

                return 403;

            }

#白名单规则

#假设192.168.1.1是要加入白名单的IP

            allow 192.168.1.1;

#禁止所有其他IP

            deny all;

        }

    }

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...