配置Nginx防止直接用IP访问Web服务器

看了很多Nginx的配置,好像都忽略了ip直接访问Web的问题,这样理论上不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面。

  官方文档中提供的方法:

If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests:

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

  说白了就是只要是访客用ip访问就直接重置444错误。但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。配置如下:

server {
listen 80 default_server;
server_name _;
rewrite ^ http://www.domain.com$request_uri?;
}

  这样还是有一点问题,某些特别的地址,我需要用ip访问,其他的都禁止,如何配置呢?比如说我想让监控宝直接用ip访问我的机器的nginx状态信息,其他的用ip访问的所有请求都跳转到域名上。

server {
listen 80 default_server;
server_name _;
location /xxxxx{
stub_status on;
access_log off;
}
location /{
rewrite ^ http://www.domain.com$request_uri?;
}
}

  这样就实现了我们想要的功能了。

配置Nginx防止直接用IP访问Web服务器

时间: 2024-10-05 23:52:49

配置Nginx防止直接用IP访问Web服务器的相关文章

在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解

看了很多nginx的配置,好像都忽略了ip直接访问web的问题,不利于SEO优化,所以我们希望可以避免直接用IP访问网站,而是域名访问,具体怎么做呢,看下面. 官方文档中提供的方法: If you do not want to process requests with undefined “Host” header lines, you may define a default server that just drops the requests: server { listen 80 de

ASP.NET Core 2.1发布/部署到Ubuntu并配置Nginx反向代理实现ip访问

一.准备 我用的是Ubuntu服务器器 [Ubuntu 18.04 x64] 和终端管理工具[Xshell] 二.安装 在服务器上安装.NET Core 三.部署程序 1.创建实例程序 可以直接使用.NET Core 的命令创建一个ASP.NET Core 示例网站应用程序,创建目录 /home/myuser/firstapp,执行命令: dotnet new mvc 接着,发布刚才创建的ASP.NET Core 网站发网站目录,所以,我们先创建一个网站发布目录:/var/www/firstap

H3C防火墙——回环流量问题(内网终端通过外网IP访问内部服务器)

拓扑如下: 环境描述: 内网两个网段通过防火墙的NAT功能上网,内部WEB服务器:10.1.20.200 映射到公网80端口,配置信息如下: acl number 2000  description NAT_SOURCE  rule 5 permit source 10.1.20.0 0.0.0.255  rule 10 permit source 192.168.10.0 0.0.0.255 interface GigabitEthernet0/0  port link-mode route

apache 2.4 配置httpd:添加域名禁止IP访问网站

apache 2.4 配置httpd:添加域名禁止IP访问网站 一般来说,网站可以用域名和IP来访问.你的网站可以通过IP直接访问,本来这没什么问题,但是会有些隐患:由于搜索引擎也会收录你的IP地址的页面,所以同一个页面搜索引擎会重复收录,造成页面的权重不如单个收录高.域名恶意指向的可能:还记得google.com.sb 事件吗?google.com.sb 这个域名被恶意指向了百度,后来证实了 google.com.sb 这个域名为第三者恶意指向的,并不是Google所为.当然这只是个玩笑,但是

nginx做反向代理和后端web服务器之间的交互

1.Nginx是什么? Nginx就是反向代理服务器. 首先我们先来看看什么是代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端.比如GoAgent,翻墙神器. 一个完整的代理请求过程为:客户端首先与代理服务器创建连接,然后根据代理服务器所使用的代理协议,请求对目标服务器创建连接.或则获得目标服务器的指定资源.Web代理服务器是网络的中间实体.代理位于Web客户端和Web服务器之间,扮演"中间人"的角色. HTTP的代理服务

keepalived结合nginx状态检测脚本实现对web服务器集群的高可用

实验环境 两台CentOS-7.5虚拟机web1:10.0.11.203web2:10.0.11.204VIP :10.0.11.210web类型:nginx客户端:自用笔记本(win10)nginx状态检测脚本:ck_nginx.sh 实验一.使用keepalived简单实现web集群的高可用功能 1.准备两台web服务器 1)web1网卡情况[[email protected] ~]# [[email protected] ~]# ip a 2)web2网卡情况[[email protect

公司网络访问web服务器

一.准备工作:在eNsp中模拟公司访问web服务器,在模拟器中准备一台S5700交换机名为SW1,俩台S3700交换机分别名为SW2,SW3.三台PC机分别命名PC1,PC2,PC3.俩台Server,分别模拟web服务器跟dns服务器.一台Client,命名为Client1充当客户端 二.实验环境 设备 端口 连接设备 SW1 GE0/0/1 SW2 SW1 GE0/0/2 SW3 SW1 GE0/0/3 dns SW1 GE0/0/4 web SW2 Ethe0/0/1 SW1 SW2 Et

Telnet访问Web服务器资源

1:在Tomcat服务器下webapp目录创建一个静态资源 2:启动web服务器 3:cmd进入命令行窗口,执行telnet localhost 8080 .如果显示如下信息,需要开启Telnet客户端 控制面板-程序和功能-打开或关闭windows功能-选择Telnet客户端-确定. 再次执行telnet localhost 8080,就能输入命令行了.如果命令行不能明文展示,请按下Ctrl+],然后回车 4:访问Web服务器资源

java程序模拟浏览器访问Web服务器的处理过程

import java.net.*; import java.io.*; /* * 演示浏览器访问Web服务器的处理过程 */ public class WebServerDemo { public static void main(String[] args)throws IOException{ ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); byte[] bytes=new byte[1024]; int len