[24 年级] 初学者无意中尝试设置重定向 [Apache] [AWS]
你好。我是 Inu,一名 24 岁的学徒基础设施工程师,拥有文科背景。
这些天我希望能够移动我的头而不是我的眼睛。
这次,我将以一种原始的、物理的、恋物的方式分享我作为一个业余爱好者所学到的重定向设置的结果。
什么是重定向?
首先我们看一下维基百科的解释。
重定向(转发)是一种当您链接到文章时将您重定向到另一个页面的功能。此外,此类页面称为重定向页面。
正是如此。
您是否曾经在访问旧主页时被自动重定向到新页面?
这正是“重定向” 。
让我们尝试一下重定向设置
如何设置重定向?
因此,这次我想通过在服务器端设置并使用 AWS 的 ALB
验证环境
服务器端的设置方法,我使用了下面的验证环境来设置。
Virtualbox:版本 7.0.20
流浪者:版本2.4.1
点击此处了解如何使用Vagrant启动验证环境↓
流浪盒:AlmaLinux 9
阿帕奇:版本 2.4.57
第 1 部分:让我们在服务器端进行配置
如果要在服务器端配置,请尝试在虚拟主机的conf文件中添加别名+在虚拟主机的“.htaccess”中添加描述。
① 在虚拟主机的conf文件中添加别名
首先,使用以下命令检查虚拟主机列表。
httpd-S
在执行结果中,可以看到该服务器包含“www.hogehoge.info”和“nova-prod.byd-edu.info”。
■执行结果 VirtualHost 配置: *:80 是 NameVirtualHost 默认服务器 www.hogehoge.info (/etc/httpd/conf.d/hogehoge.conf:1) 端口 80 namevhost www.hogehoge.info (/etc/httpd/conf) .d/hogehoge.conf:1) 端口 80 namevhost nova-prod.byd-edu.info (/etc/httpd/conf.d/nova-prod.byd-edu.info.conf:1) ServerRoot: "/etc/httpd" ~缩写~
现在,让我们使用 less 命令查看“www.hogehoge.info”的conf 文件。
少 /etc/httpd/conf.d/hogehoge.conf
默认设置是相同的,所以我们在这里添加“ServerAlias”。
■执行结果<VirtualHost *:80>服务器名称 www.hogehoge.info DocumentRoot "/var/www/vhosts/hogehoge.info/public_html" DirectoryIndex index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html >选项 FollowSymLinks 允许覆盖全部</Directory>CustomLog“/var/log/httpd/hogehoge.info-access_log”组合ErrorLog“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>
使用 vi 命令编辑“www.hogehoge.info”的conf 文件。
vi /etc/httpd/conf.d/hogehoge.conf
进入编辑模式,然后在 ServerName 下添加“ServerAlias”。
<VirtualHost *:80>服务器名称 www.hogehoge.info 服务器别名hogehoge.info ←此处!! DocumentRoot "/var/www/vhosts/hogehoge.info/public_html" DirectoryIndex index.php index.html index.xml<Directory /var/www/vhosts/hogehoge.info/public_html >选项 FollowSymLinks 允许覆盖全部</Directory>CustomLog“/var/log/httpd/hogehoge.info-access_log”组合ErrorLog“/var/log/httpd/hogehoge.info-error_log”</VirtualHost>
添加描述后,使用 esc 退出编辑模式,然后使用 :wq 保存并退出。
使用cat命令确认“ServerAlias”已正确添加后,继续下一步。
② 在虚拟主机的“.htaccess”中描述
接下来,让我们创建“.htaccess”。
首先,移动到“www.hogehoge.info”的文档根目录。
cd /var/www/vhosts/hogehoge.info/public_html
移动后, public_html 内创建“.htaccess”
vi.htaccess
当您打开vi屏幕时,将出现一个全新的编辑屏幕,因此请添加以下信息。
RewriteCond 上的 RewriteEngine %{HTTP_HOST} ^hogehoge\.info [NC] RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301]
让我们看一下它们各自的含义。
重写引擎开启 | 启用 URL 重写 |
RewriteCond %{HTTP_HOST} ^hogehoge\.info [NC] | 定义条件,使表示 URL 的主机名的变量 =hogehoge.info,无论大小写。 |
RewriteRule ^(.*)$ http://www.hogehoge.info/$1 [L,R=301] | 定义一条规则,将满足上述条件的请求重写到www.hogehoge.info,返回状态码301,并重定向。 |
嗯,这很难。
这篇文章非常容易理解。
编辑后,使用以下命令重新加载设置。
systemctl 重新加载 httpd
最后,尝试实际访问“hogehoge.info”,看看您是否被重定向到“www.hogehoge.info”。
不要忘记以管理员权限打开记事本,在“C:\windows\system32\drivers\etc\hosts”文件底部写入并保存本地IP和主机名!
如果不设置的话,即使访问“hogehoge.info”也不会出现任何页面! ! 设置方法是这样的↓
访问后...
■ 访问日志 192.168.33.1 - - [14/Oct/2024:08:22:03 +0000] "GET / HTTP/1.1" 301 233 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/ 537.36(KHTML,如 Gecko)Chrome/129.0.0.0 Safari/537.36"
我们确认,我们实际上在 Chrome 上被重定向到“www.hogehoge.info”,并且我们还在访问日志
第 2 部分:让我们使用 AWS 的 ALB
在AWS环境中,似乎可以在到达服务器之前在负载均衡器端配置重定向设置。
首先,打开 AWS 控制台屏幕并使用以下路径移至设置屏幕。
EC2 > 负载均衡器 > 目标 ALB > 目标端口 > 侦听器规则部分中的“添加规则”
一旦您能够移动,请填写步骤 1 至 5 中的必要项目。
第 1 步:添加规则
这是规则名称和标签设置屏幕。如果两者都是空白的话就没有问题。
步骤② 定义规则条件
从“添加条件”中选择“规则条件类型”。此项用于配置转换源的访问。
主机头 | 这对应于 “https://hogehoge.info /test.txt ,因此这次输入“hogehoge.info”,即源主机。 |
小路 | 这对应于 “https://hogehoge.info /test.txt ,如果来自特定路径的访问是转换源,则必须指定。 |
HTTP请求方式 | 可以指定GET、POST等。 |
源IP | 可以指定请求来自哪个IP |
步骤 ③ 定义规则动作
接下来,我们将设置过渡目的地。
路由操作 | 选择“重定向到 URL” |
重定向到网址 | 选择“URI部分” |
协议 | 选择任意协议 ,本次选择“HTTP”在本地环境进行验证。 |
港口 | 选择任意端口, 由于我们这次选择了“HTTP”作为协议,因此输入“80”。 |
使用自定义主机、路径、查询... | 我会检查一下 |
主持人 | 它对应于 “https://hogehoge.info /test.txt ,因此输入 www.hogehoge.info |
小路 | 对应于 “https://hogehoge.info /test.txt ,这次我们要将其应用到“www.hogehoge.info”下的所有路径,因此输入 /* |
查询 - 可选 | 这是查询参数, “https://beyondjapan.com/?s=test&post_type=pt-blog ”部分, 如有需要请输入。 |
状态码 | 使用 301 表示永久重定向,使用 302 表示临时维护重定向似乎很常见。在 这种情况下,我们假设它是永久重定向,并会说“301 - 永久移动选择”。 |
步骤 ④ 设置规则优先级
设置重定向设置的优先级。优先级是一个数值,指定存在多个重定向设置时哪个设置优先。
这些数字按从低到高的优先顺序排列,其中 0 是最优先的数字。
这次,我们只设置一个,所以“1”就可以了。
设置时注意事项:
除上述设置外,如果您想添加从“hogehoge.info”的特定路径(例如hogehoge.info/test.txt等)重定向到另一个页面的设置,请将此设置设置为更高的优先级。
由于条件“hogehoge.info/test.txt”使用通配符包含在现有条件“hogehoge.info/*”中,因此如果优先级顺序不正确,重定向将无法正常工作。
优先级 1“hogehoge.info/test.txt”→“某处”
优先级 2“hogehoge.info/*”→“www.hogehoge.info/*”
让我们就这样吧!
步骤 ⑤ 确认并创建
检查输入的信息是否有问题,如果没有问题,请按“创建”。
如果检查操作,确认重定向成功,就OK了!
再次,不要忘记以管理员权限打开记事本,在“C:\windows\system32\drivers\etc\hosts”文件底部写入并保存本地IP和主机名!
对了,这次我们需要输入ALB的公网IP,所以我也分享一下如何做到这一点。
① 进入用于验证的 ALB 的详细信息屏幕,复制“DNS 名称”。
② 打开 WSL 或 Ubuntu 并使用 dig 命令检查 IP。
挖 hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com
■执行结果;; 答案部分:hoge-test-alb-12345678.ap-northeast-1.elb.amazonaws.com。 60 IN A 12.345.678.90 ←这个!
③ 复制答案部分中出现的 IP,将其粘贴到主机文件的底部,然后像以前一样保存。
概括
以上是关于初学者尝试设置重定向的内容。
希望这篇文章能够对初学者有所帮助(合掌)