我使用Nginx作为Web服务器,我想拒绝访问某些域中的特定目录。或者换句话说,只能从一个域或IP地址访问该路径/目录。
示例:
http://domain.com/manager/ =>重定向到404页
http://www.domain.com/manager/ =>重定向到404页
http://10.10.10.10/manager/
=>允许访问
最后,为了使其成为一个完整的解决方案,我想在访问此特定路径时强制使用https连接。
按照我之前的例子:
http://10.10.10.10/manager/
=>重写为https
答案 0 :(得分:0)
使用
location / {
deny all;
allow [ip];
}
然后重启您的服务。
更多:http://nginx.org/en/docs/http/ngx_http_access_module.html
答案 1 :(得分:0)
解决力https(假设你已经有一个侦听端口443的nginx)
server {
listen 80;
server_name 10.10.10.10;
rewrite ^(.*) https://10.10.10.10$1 permanent;
}
要解决重定向到404的问题,您可以考虑在主配置中使用以下内容来侦听服务器" domain.com"
location ~ ^/manager {
return 404;
}
答案 2 :(得分:0)
这就是我想要的:
server {
listen 80;
server_name domain.com;
# Redirect path to secure connection
location ^~ /manager {
rewrite ^/(.*) https://domain.com$1 permanent;
}
}
server {
listen 443;
location ^~ /manager {
allow 10.10.10.10;
deny all;
error_page 403 =404 /404.html;
}
}