如何在 Apache 服务器中实现地理定位功能

2022-12-27 0 617

每星期撷取新一代,最盛行的应用软件设计科学知识与新一代金融行业趋势,希望大家能够全屏帕西基,喔支持,下跪关注,点赞,回帖。

如何在 Apache 服务器中实现地理定位功能

责任编辑将辅导您怎样在 Apache Server 中加进自然地理机能定位机能并了解来访者的自然区位。

自然地理定位是几项让您能采用 IP 门牌号找寻来访者具体位置的技术,它是一种无所不在的应用软件系统,已在许多金融行业中采用。比如,假如您采用 Google Analytics 或 Matomo 来追踪您的来访者,所以您就是在采用自然地理机能定位应用软件系统。假如您内嵌了一个很棒的小组件来手动充填北欧国家或沿海地区信息,所以您正在采用自然地理机能定位应用软件系统。nobres两例。

实施自然地理机能定位的原因有很多,比如更快heard您的广告主服务项目、订制更快的下载新体验、监视购买商业模式、压制诈欺等。在责任编辑中,我将向您展现怎样在 Apache 伺服器中同时实现自然地理机能定位机能,并紧密结合一些采用情景。在这里,我将采用适用于于 Apache、PHP C语言和 Debian 作业系统的 IP2Location 自然地理机能定位库。

Web 伺服器组件

Web 伺服器是处置 HTTP/HTTPS 允诺的应用软件,以期来访者能查阅和出访您的中文网站。在将允诺发送至您的 PHP 流程以展开进一步处置之前,这将是第一层处置。从方法论上讲,这也是置放命令行或方法论的好地方,比如链接、制止或将积极响应回到给分配器。比如,制止源自您没有业务展现或服务项目的某一北欧国家/沿海地区的使用者,或将南韩观众们链接到您的韩文译者网页。

必要条件

在本教程中,我将采用 Debian 11 中的 Apache 2.4.54 展开说明。我假定您已将此环境增设为遵从以下次序。

另外,请确保安装了unzip wget 包。

阿帕奇

为了在 Apache 环境中采用地理机能定位机能,您需要构建组件并将其安装到 Apache 伺服器中。您需要安装与标准 Apache 安装不同的开发工具来构建组件。您能运行以下命令来增设开发环境。

sudo apt install apache2-dev

IP2Location Apache 组件

IP2Location Apache 组件是采用 IP2Location C 库构建的。在构建组件之前,您需要下载并安装 C 库。我将为这个构建过程创建一个名为ip2location 的文件夹。

mkdir ip2location && cd ip2location

在 ip2location 文件夹中,我们将通过运行以下命令 下载 IP2Location C 库。

壳1个wget https://github.com/chrislim2888/IP2Location-C-Library/archive/master.zip2个解压缩 master.zip && rm master.zip

此外,我们还将通过运行以下命令下载 IP2Location Apache 组件:

wget https://github.com/chrislim2888/IP2Location-C-Library/archive/master.zip

unzip master.zip && rm master.zip

您应该在 ip2location 文件夹中看到 IP2Location-C-Library-master 和 ip2location-apache-master。

如何在 Apache 服务器中实现地理定位功能

接下来,我们将构建并安装 IP2Location C 库。执行以下命令:

cd IP2Locatoin-C-Library-master

autorecof -i -v –force

./configure

make

make install

假如命令成功运行,您应该会看到下面的屏幕截图。

如何在 Apache 服务器中实现地理定位功能

请执行ldconfig命令重新加载 Debian 中的共享库。

然后,进入 ip2location-apache-master 文件夹。

cd ../ip2location-apache-master/

通过运行以下命令构建 IP2Location Apache 组件:

apxs2 -i -a -L ../IP2Location-C-Library-master/libIP2Location/ -I ../IP2Location-C-Library-master/libIP2Location/ -l IP2Location -c mod_ip2location.c

假如组件构建成功,您应该会看到以下屏幕。

如何在 Apache 服务器中实现地理定位功能

重新启动 Apache 伺服器以激活该组件。

service apache2 restart

然后,运行以下命令以确认该组件是否已在 Apache Server 中启用。

apache2ctl -M

假如上述过程正确完成,您应该会看到 IP2Location_module(共享)条目,如以下屏幕截图所示。

如何在 Apache 服务器中实现地理定位功能

现在,我们已经准备好组件。让我们探讨一下怎样采用该组件。

将使用者链接到某一 URL

在允诺路由到您的 PHP 页面之前,您能将使用者链接到 Apache 伺服器上的某一 URL。我们为什么要这样做?这是因为这种方法能为您提供更快的积极响应时间和更低的 CPU 采用率,因为不需要将允诺发送至 PHP 展开额外处置。在此示例中,我将向您展现怎样采用.htaccess文件执行此操作。

首先,您必须启用重写组件,该组件允许您对传入的 URL 执行重写操作。运行以下命令以启用重写组件(它随 Apache 伺服器安装一起提供。因此,不需要额外安装。)

a2enmod rewrite

然后,重新启动 Apache 伺服器以激活更改。重新启动后,运行以下命令以确保已启用重写组件。

apachectl -M

如何在 Apache 服务器中实现地理定位功能

然后,我们需要将 IP2Location Apache 配置加进到apache2.conf文件中。您能在/etc/apache2文件夹中找到该文件。请将以下行加进到apache2.conf文件中。

IP2LocationEnable ON

IP2LocationDetectProxy OFF

IP2LocationSetmode ALL

IP2LocationDBFile \var\www\html\DB1.BIN

</IfModule>

您能参考GitHub中的信息以了解有关增设的更多信息。在本讲义中,您只需粘贴上面的内容并确保IP2LocationDBFile指向您下载 BIN 数据文件的位置。假如没有,能从lite下载。

在 apache2.conf 文件中,请确保 AllowOverride 增设为 All 以允许重写操作。.htacess文件中的增设:

RewriteEngine On

RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^US$

RewriteRule ^(.*)$ https://www.google.com [L]

您现在能转到 /var/www/HTML(您域的根目录)并创建.htaccess文件并输入以下内容:

RewriteEngine On

RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^US$

RewriteRule ^(.*)$ – [R=404]

以上将把源自美国的流量链接到谷歌。

相反,假如您想通过回到 404 网页来制止来访者,您能按以下方式展开:

纯文本1个重写引擎开启2个RewriteCond %{ENV:IP2LOCATION_COUNTRY_SHORT} ^US$3个重写规则 ^(.*)$ – [R=404]

[R=404] 标志将指示 Web 伺服器将默认的 404 状态回到给调用者。

怎样在 PHP 中采用自然地理机能定位

安装 Apache 组件后,您无需显式导入第三方自然地理机能定位库。自然区位信息通过环境变量手动提供,并可在您的 PHP 项目中的任何地方采用。下面的简单代码将回到来访者 IP 门牌号的北欧国家/沿海地区简称、沿海地区名称和城市名称。请注意,您必须采用 DB3 BIN 数据才能检索沿海地区和城市信息。

echo $_SERVER[IP2LOCATION_COUNTRY_SHORT];

echo $_SERVER[IP2LOCATION_REGION];

echo $_SERVER[IP2LOCATION_CITY];

?>

结论:优点和缺点

每种方法都有其优点和缺点,这只是最适合您的环境的问题。上述方法为您提供了一种简单快捷的方法来检索您能在同一 Apache 伺服器下托管的所有 PHP 项目中采用的自然区位。一种增设适用于于所有人。此外,它还为您提供了一种更快、更有效的方法来在 Web 服务器级别执行链接/制止。但是,我能想到的主要问题是 BIN 文件更新。如您所知,BIN 路径是在apache2.conf 中配置的并且只会在 Apache 加载过程中加载。因此,在定期更新BIN数据时,通常是一个月一次,为了让新的BIN数据生效,你不得不重启整个Apache伺服器。话虽如此,假如您运行的不是关键任务中文网站,并且对重新启动活动没问题,那根本就没问题。

快乐的编码。

举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务