本帖最后由 Sniper 于 2016-4-28 22:08 编辑
A域名是正常访问的站点,结果被另一个未绑定的非法B域名访问了,这种情况怎样从根本上限制呢?
A域名是正常访问的站点,结果被另一个未绑定的非法B域名访问了,这种情况怎样从根本上限制呢?
0
本帖最后由 wsw13640218682 于 2016-4-28 22:12 编辑
在虚拟主机上设置好指定的域名,就可以防止别人用hosts文件来解释你的正常域名了
以apache为例:
vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2/htdocs/"
ServerName www.user10.com #默认虚拟主机,指定服务器自定义域名的访问
ServerAlias www.12g3a.com
ServerAlias www.12a.com
vi /usr/local/nginx/conf/vhosts/111.conf
server
}
在虚拟主机上设置好指定的域名,就可以防止别人用hosts文件来解释你的正常域名了
以apache为例:
vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
DocumentRoot"/tmp/111/" #默认虚拟主机,添加多一个不存在的服务器定义的域名来创建一个空目录/文件,限制不是服务器自定义域名的访问
ServerName www.i1111.com
# ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2/htdocs/"
ServerName www.user10.com #默认虚拟主机,指定服务器自定义域名的访问
ServerAlias www.12g3a.com
ServerAlias www.12a.com
nginx的话:
vi /usr/local/nginx/conf/vhosts/default.conf
server
{
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php; #单独设一个不存在的虚拟主机,拒绝输入任何解释访问
root /tmp/1233; #创建一个空目录输入任何域名,都会403错误,防止对方自定义访问
deny all;
} vi /usr/local/nginx/conf/vhosts/111.conf
server
{
listen 80;
server_name www.user13.com www.23a.com www.22a.com; #服务器指定的域名..}
0
我这里多个前端nginx代理机,向后端转发的机制,按照你的写法,我是这样设置的,但仍然无效。
前端nginx代理
server {
listen 80 default_server;
server_name localhost;
location / {
proxy_pass http://1.1.1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header FORWARDED-FOR $remote_addr;
proxy_set_header Host $host;
}
}
后端web
vi /usr/local/nginx/conf/vhosts/default.conf
server {
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php;
root /tmp/1233;
deny all;
}
vi /usr/local/nginx/conf/vhosts/111.conf
server
{
listen 80;
server_name www.abc.com www.23a.com www.22a.com;
set_real_ip_from 1.1.1.1;
}
前端nginx代理
server {
listen 80 default_server;
server_name localhost;
location / {
proxy_pass http://1.1.1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header FORWARDED-FOR $remote_addr;
proxy_set_header Host $host;
}
}
后端web
vi /usr/local/nginx/conf/vhosts/default.conf
server {
listen 80 default_server;
server_name localhost;
index index.html index.htm index.php;
root /tmp/1233;
deny all;
}
vi /usr/local/nginx/conf/vhosts/111.conf
server
{
listen 80;
server_name www.abc.com www.23a.com www.22a.com;
set_real_ip_from 1.1.1.1;
}
0
在代理机器上直接禁止即可。 比如你想禁掉的域名为 www.111.com 配置文件这样写。
在nginx.conf 中加一段
server
{
listen 80 ;
server_name www.111.com; #如果有多个域名,直接往后加空格加域名
index index.html index.htm index.php;
root /tmp/1233;
deny all;
}
Sniper 发表于 2016-4-28 23:07
我这里多个前端nginx代理机,向后端转发的机制,按照你的写法,我是这样设置的,但仍然无效。
前端nginx ...
在代理机器上直接禁止即可。 比如你想禁掉的域名为 www.111.com 配置文件这样写。
在nginx.conf 中加一段
server
{
listen 80 ;
server_name www.111.com; #如果有多个域名,直接往后加空格加域名
index index.html index.htm index.php;
root /tmp/1233;
deny all;
}
编辑回复