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.pngmac 本机配置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; #下载到指定的文件大小之后开始限速
}