Nginx 多域名多网站绑定及禁止IP访问

lnmp 服务器架设好,配置nginx,实现多个网站分别绑定各个域名

这里以域名:www.mysite.com为例

1.在/usr/local/nginx/conf/vhost文件夹中创建mysite.conf文件

2.在其中写入如下内容并保存:

server {
        listen 80;	                # 网站的端口一般为 80,可以与其他网站一起使用该端口
        server_name  www.mysite.com;	# 要绑定的域名(或子域名)
        root /home/www/mysite;		# 该网站的根目录
        location / {			# 不用管
        }
}

3.nginx -s reload 重启服务即可生效。

那如何禁止用户通过IP地址直接访问WEB服务.

利用nginx的default_server可以很容易地实现该功能:

 server {
        listen 80 default_server;
        server_name _;
        return 403;
    }

    server {
        listen 80;
        server_name  mydomain.com;

        location / {
        }
    }

上述nginx配置中有两个server都监听了80端口,第一个server设置为default_server, server_name为任意域名;第二个server域名设置为mydomain.com. 当http请求到达nginx时,如果是通过mydomain.com访问的(header中Host字段为mydomain.com),则该请求会匹配到第二个server, 由该server进行处理,否则由第一个default server进行处理,default server直接返回403禁止访问状态码。

上述配置中,不是通过mydomain.com访问nginx, 会直接返回403的状态码, 返回页面为nginx默认的403错误页面。

如果需要替换这个默认的静态的403页面,可以把default server配置成一个静态的server, 请求匹配到该server时直接返回一个自定义的403页面,nginx配置如下所示:

server {
            listen 80 default_server;
            server_name _;
            index 403.html;
     }
     server {
        listen 80;
        server_name  mydomain.com;

        location / {
        }
     }

或

server {
    listen 80;
    server_name  www.mydomain.com;
    if ($host != 'www.mydomain.com'){
    return 403;
}

这样不通过mydomain.com访问nginx,就可以返回自定义的403错误页面了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值