姑妄言之姑听之
豆棚瓜架雨如丝

博客web端改用apache 及使用cdn后获取真实IP地址

试用了几天Cloudflare加racknerd的2h2g的小鸡,感觉还算差强人意。所以干脆就先把博客放这里算了,然后又突发奇想,其他的网站一直用的lnmp,为啥博客就不能用用lamp呢?况且apache在稳定性以及对php的支持等方面都比nginx要好,nginx的优势是轻便和并发能力强。其实对小博客来说,基本没有啥区别。

说折腾就折腾,编译安装apache,发现需要重新设置虚拟主机,设置的时候发现,不像nginx的时候,脚本提示把http301到https,什么www域名301到一级域名等,这些提示都没有。也没有设置伪静态的选项。网上查了一下,发现是几行代码就可以搞定的事情。

设置301跳转

在apache里设置301跳转很简单,只需要在.htaccess里添加代码就好了,老刘主要用到两个,一个是http跳到https,一个是www跳到一级域名。感觉比nginx要简洁一些,代码如下:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://iliu.org/$1 [R,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} !^iliu.org$ [NC]
RewriteRule ^(.*)$ http://iliu.org/$1 [L,R=301]

设置后才发现,设置和不设置没有啥区别,老刘用的cf,应该是在cf里设置了301到443接口了,至于wordpress伪静态的问题,也是很容易,直接到wordpress的后台,保存一下固定链接样式就行了,保存后在根目录里自动生成了.htaccess。代码如下:

# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

使用cloudflare后获取用户真实IP

由于apache已经自带mod_remoteip模块,所以只需按如下操作即可

#启用模块
vim /usr/local/apache/conf/httpd.conf
Include conf/extra/httpd-remoteip.conf
#添加如下内容
vim /usr/local/apache/conf/extra/httpd-remoteip.conf
LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/24
#CloudFlare IP Ranges
RemoteIPInternalProxy 103.21.244.0/22
RemoteIPInternalProxy 103.22.200.0/22
RemoteIPInternalProxy 103.31.4.0/22
RemoteIPInternalProxy 104.16.0.0/12
RemoteIPInternalProxy 108.162.192.0/18
RemoteIPInternalProxy 131.0.72.0/22
RemoteIPInternalProxy 141.101.64.0/18
RemoteIPInternalProxy 162.158.0.0/15
RemoteIPInternalProxy 172.64.0.0/13
RemoteIPInternalProxy 173.245.48.0/20
RemoteIPInternalProxy 188.114.96.0/20
RemoteIPInternalProxy 190.93.240.0/20
RemoteIPInternalProxy 197.234.240.0/22
RemoteIPInternalProxy 198.41.128.0/17 #你的CDN的IP,可以重复添加
#在httpd.conf中修改日志格式,在日志格式中加上%a,然后重启apache即可
LogFormat "%h %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %a %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combined

service httpd restar重启apache,然后去日志里看看,已经获得了真实IP。前连天灰常记忆博友说在cloudflare里设置一下也能显示真实IP,但是老刘没有找到这个设置,只好继续在网站上改了,网站上改还有一个好处是,这个方法不仅限于cloudflare,别的CDN也是适用的

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《博客web端改用apache》
文章链接:https://iliu.org/3520.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 12

  1. #5

    我最初也是apache,但是到了现在,还是觉得nginx配置方便。

    姜辰3年前 (2021-01-05)回复
    • 是,APACHE教程都太老了,现在确实没有nginx方便了,我又换回来了

      老刘3年前 (2021-01-05)回复
  2. #4

    在另一个博客也看到说apache的牛逼之处,但我还是不折腾了,能访问就好

    哥斯拉3年前 (2021-01-03)回复
    • 就是,对我等小博客来说,两个用哪个都无所谓

      老刘3年前 (2021-01-04)回复
  3. #3

    新的一年到了,元旦快乐

    响石潭3年前 (2021-01-02)回复
    • 谢谢陈?主任的祝福,同祝元旦快乐

      老刘3年前 (2021-01-03)回复
  4. #2

    看到 .htaccess就让我想起了虚拟空间。

    老麦3年前 (2020-12-31)回复
    • 是,当年的虚拟主机大多都是apache

      老刘3年前 (2021-01-03)回复
  5. #1

    我就是因为 .htaccess 换到 nginx,怎么整都不对,换 nginx 试试,轻松解决,就留下来了~

    老杨3年前 (2020-12-30)回复
    • 貌似apache好久没有新版本了,nginx的新版一个接一个,唉!~

      老刘3年前 (2020-12-31)回复
      • a 也在更新啊,Stable Release – Latest Version: 2.4.46 (released 2020-08-07);nginx 更新还慢呢:2020-04-21 nginx-1.18.0 stable version

        老杨3年前 (2020-12-31)回复
        • 对博客来说,两者的差别不大感觉

          老刘3年前 (2020-12-31)回复

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏