首页>建站相关>nginx禁止来访者通过IP访问

nginx禁止来访者通过IP访问

Nginx的主配置文件是 nginx.conf ,在阿里云服务器中,它一般位于 /etc/nginx 目录之下,为了避免频繁改动主配置文件,笔者屏蔽掉了主配置文件中的监听80端口的部分(nginx对443端口的监听默认状态为被注释),通过在 /etc/nginx 下的 conf.d 文件夹中新建一个后缀为 .conf 的文件,来实现对配置的增删。

nginx_disable_ip

站点通过下面的语句设置了强制 https 访问,当用户以 http 开头的网址访问时,会被强制 301 跳转到 https 页面,但是测试时发现,不仅是通过域名访问会被跳转,通过 ip 访问服务器时,也会被自动跳转到”https://www.biib.top” 。

    server {
        listen       80;
        server_name  www.biib.top; 
        rewrite ^(.*)$ https://${server_name}$1 permanent;
    }

百度搜索了一下成因,感觉类似于这篇文章所提及的
《nginx配置文件nginx.conf之server及server_name的意义详解》
通过其他ip也能请求到nginx,但是匹配不到相应的server,这个时候就会使用第一个server。正愁没法屏蔽通过ip地址访问,这样误打误撞也算是解决了一半了。

但当用户通过 https 的方式访问 ip 地址时,80 端口的规则就不再起作用了,尝试为 ip 单独配置一个 443 端口的,发现 443 端口必须填写证书路径,一想自己也没有 ip 证书啊,只有一套域名的,遂作罢,后续看到有文章说,证书语句必须要有,但证书名称可随意填写,假证也行呗……

虽然没有坚持实践出真知,但还是找到了替代的方法,即在原 443 的server中加入了一条判断语句:

    server {
        listen       443 ssl;
        server_name  www.biib.top;
        root   /usr/share/nginx/html/wordpress;
        #判断部分开始
        if ($host != 'www.biib.top'){
            #rewrite ^(.*)$ https://${server_name}$1 permanent;  
        }
        #判断部分结尾
        ssl_certificate      /etc/pki/nginx/biib.top.pem;
        ssl_certificate_key  /etc/pki/nginx/biib.top.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;
    
        location / {
            index  index.php index.html index.htm;
        }
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

这样服务器会判断来访用户是否通过www.biib.top访问,不符合的同样会被跳转到”https://www.biib.top”。

标签: nginx

移动端可扫我直达哦~

推荐阅读

nginx 2023-11-08

nginx下的301跳转与302跳转

301跳转or302跳转301跳转301代表这个定向是永久的,搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址。而302则向搜索引擎声明这是暂时的重定向,搜索引擎会以为新的网址只是暂时的,会抓取新的内容而保存旧的网址。30...

建站相关 nginx

nginx 2023-11-07

nginx网站301跳转与强制通过https访问

关于301重定向301跳转是一种永久性重定向,向搜索引擎和用户说明原URL地址已经永久性更改为新的URL地址,使得搜索引擎在收录网站时可以将原URL地址的权重转移到新的URL地址上,同时也能方便用户访问到正确的内容。小鸟数据沉浮史小鸟...

建站相关 nginx

nginx 2022-10-09

nginx让来访者跳转至https页面

配置服务器实现了Nginx的https访问,配置文件同时支持了80端口以及443端口的访问,详见博文《为nginx服务器开启https》,如果只希望用户通过https访问站点,我们还需要改动一下配置文件,在80端口的设置部分写入一条跳...

建站相关 nginx

nginx 2022-10-09

为nginx服务器开启https服务

随着支持https标准的站点越来越多,浏览器上对于非https站点的标记也似乎越来越醒目了。所以用LNMP重新搭建服务器系统之后,首先想到的就是启用https。为站点开启https,首先需要一套安全证书,博主的域名购买自阿里云,域名证...

建站相关 nginx

nginx 2022-09-30

nginx环境下的虚拟主机配置

Nginx是一个高性能的HTTP和反向代理web服务器,下图是一个安装于阿里云服务器上Nginx文件目录,其中两个蓝色的是文件夹,可用于存放外部的配置文件,Nginx的核心配置文件是“nginx.conf”,图中其正下方有另一个相似的...

建站相关 nginx

nginx 2022-09-28

为nginx开启gzip压缩

gzip最早由Jean-loup Gailly和Mark Adler创建,用于unix系统的文件压缩。我们在linux中经常会用到后缀为.gz的文件,它们就是gzip格式的。gzip格式已经成为Internet上使用非常普遍的一种数据...

建站相关 nginx