配置一个blockips.conf,然后在nginx.conf中include
e.g
location {
allow 127.0.0.1; #允许本地ip 注意顺序,allow要放在前面
deny all; #禁止其他ip
}
Rewrite模块
作用:执行URL重定向,允许你去掉带有恶意的URL,包含多个参数(修改)
利用正则的匹配,分组和引用,达到目的
break/return/set等
if (-f $uri) {
break
}
if ($uri ~ ^/admin/){
return 403;
}
if ($uri ~ ^/search/(.*)$) {
set $query $1;
rewrite ^ /search.php?q=$query?;
}
例子
A:http://website.com/search/some-search-keywords B:http://website.com/search.php?q=some-search-keywords rewrite ^/search/(.*)$ /search.php?q=$1?; A:http://website.com/user/31/James B:http://website.com/user.php?id=31&name=James rewrite ^/user/([0-9]+)/(.+)$ /user.php?id=$1&name=$2?; A:http://website.com/index.php/param1/param2/param3 B:http://website.com/index.php/?p1=param1&p2=param2&p3=param3 rewrite ^/index.php/(.*)/(.*)/(.*)$ /index.php?p1=$1&p2=$2&p3=$3?;
rewrite语法
rewrite A B option;
options:
last :表示完成rewrite
break:本规则匹配完成后,终止匹配,不再匹配后面的规则
redirect:返回302临时重定向,地址栏会显示跳转后的地址
permanent:返回301永久重定向,地址栏会显示跳转后的地址
Proxy模块
默认模块,允许你讲客户端的HTTP请求转到后端服务器
location / {
proxy_pass_header Server; #该指令强制一些被忽略的头传递到客户端
proxy_redirect off; #允许改写出现在HTTP头却被后端服务器触发重定向的URL,对相应本身不做任何处理
proxy_set_header Host $http_host; #允许你重新定义代理header值再转到后端服务器.目标服务器可以看到客户端的原始主机名
proxy_set_header X-Real-IP $remote_addr; #目标服务器可以看到客户端的真实ip,而不是转发服务器的ip
proxy_set_header X-Scheme $scheme;
proxy_pass http://localhost:8080;
}
upstream模块
upstream up_name {
server 192.168.0.1:9000 weight=5; #权重
server 192.168.0.2:9000 weight=5 max_fails=5 fail_timeout=60s; #在60s内,其错误通信超过5次,认为该服务失效
server 192.168.0.3:9000 down; #服务标记为离线,不再使用
server 192.168.0.4:9000 backup; #备份服务器,其他全部宕机了才启用
}
其他
配置静态化目录
location /static/
{
root /var/www/app/;
autoindex off;
}
负载均衡
http {
include mime.types;
default_type application/octet-stream;
keepalive_timeout 120;
tcp_nodelay on;
upstream up_localhost {
server 127.0.0.1:8000 weight=5;
server 127.0.0.1:8001 weight=10;
}
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://up_localhost;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}








