Nginx,Apache只允许域名访问详细配置


一、nginx配置只允许域名访问


# 设置不允许Ip访问web(default_server)

server {

   listen 80 default_server;

    server_name _;

    return 403;

}

# 设置www.meteor-yu.com域名访问web

server {

    listen 80;

    server_name www.meteor-yu.com;

    location /ngx_status {

        stub_status on;

        access_log off;

    }

    location /status {

        include fastcgi_params;

        fastcgi_pass 127.0.0.1:9000;

        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

    }

}


#######

# 设置通过访问顶级域名meteor-yu.com自动跳转到www.meteor-yu.com这个域名

server {

   listen 80;

    server_name meteor-yu.com;

    return 301 http://www.meteor-yu.com$request_uri;

}



二、Apache配置只允许域名访问


# 用Apache搭建的WEB服务器 如何设置只能通过域名访问 禁止使用ip访问的方法

# 目前常用Apache与Nginx来搭建的WEB服务器,通常搭建好之后使用IP也可以访问网站的内容,

# 那对于Apache搭建的WEB服务器如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢?

# 两个方法可以实现,都是修改httpd.conf文件来实现的,下面举例说明。


### 方法一:在httpd.conf文件最后面,加入以下代码


NameVirtualHost *:80

<VirtualHost *:80>

    ServerName 192.168.116.129  # web服务地址

    <Location />

        Order Allow,Deny

        Deny from all

    </Location>

</VirtualHost>


<VirtualHost *:80>

    DocumentRoot "/var/www/html"

    ServerName www.meteor-yu.com

</VirtualHost>

说明:红色部分是实现拒绝直接通过IP的任何访问请求,这时如果你用IP访问,会提示拒绝访问。蓝色部分就是允许通过www.meteor-yu.com这个域名访问,主目录指向/var/www/html


### 方法二:在httpd.conf文件最后面,加入以下代码


NameVirtualHost *:80

<VirtualHost *:80>

    DocumentRoot "/var/www/html/default"

    ServerName 192.168.116.129   # web服务地址

</VirtualHost>


<VirtualHost *:80>

    DocumentRoot "/var/www/html"

    ServerName www.meteor-yu.com

</VirtualHost>

说明:把所有通过IP直接访问的请求指向/var/www/html/default目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。


注意:


1. 直接复制粘贴的话可能会带有中文空格,请把这些多余的空格去掉。


2.  如果使用了负载均衡,限制的IP不要写外网IP,请填写内网IP。


###########

# 设置通过访问顶级域名meteor-yu.com自动跳转到www.meteor-yu.com这个域名

# 开启apache rewirte功能

打开httpd.conf,找到

  # LoadModule rewrite_module modules/mod_rewrite.so

把#去掉

找到AllowOverride None 改成 AllowOverride All


# 在httpd.conf文件最后面,加入以下代码

<VirtualHost *:80>

    ServerName meteor-yu.com

    RedirectMatch ^/(.*)$ http://www.meteor-yu.com/$1

</VirtualHost>



PS:以上这只是简易配置,根据需求自行添加相应配置