Apache设置反向代理等相关备注

要实现哪几个目的呢?

1,访问不同的域名,反向代理到不同的网站,用虚拟主机解决

2,不同的域名生成不同的日志文件,并且错误日志按月生成,访问日志按天生成

测试通过的做法:

1,打开mod_proxy开头的几个模块(至少需要mod_proxy, mod_proxy_http这两个)

2,因为要做虚拟主机,干脆写到独立的文件里去,那我们include一下

        Include conf/extra/httpd-vhosts.conf   #其实解除这句话在httpd.conf里面的注释就可以了

3,编辑httpd-vhosts.conf文件,样例:

<VirtualHost *:80>
    ServerAdmin webmaster@mysite.com #自行编辑
    ServerName sample.domain.com  #用户访问的网址
    ServerAlias sample  #自行编辑
    # 每月生成一个错误日志文件
    ErrorLog "|bin/rotatelogs.exe -l H:/logroot/apache/网站1/error/%Y-%m.log 2073600" #路径自行编辑
    # 每天生成一个访问日志文件
    CustomLog "|bin/rotatelogs.exe -l H:/logroot/apache/网站1/access/%Y-%m-%d.log 86400" common  #路径自行编辑
    ProxyPass / http://www.sample.com/  #实际访问的网址
    ProxyPassReverse / http://www.sample.com/
</VirtualHost>

上例,即把sample.domain.com反向代理到了www.sample.com

顺便,如果要限制日志文件大小呢?同样用rotatelogs这个工具:

ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M"

补充一下rotatelogs的语法:

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

参数解释:
-l :使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。
logfile:它加上基准名就是日志文件名。如果logfile中包含"%",则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单

位的".nnnnnnnnnn"后缀。这两种格式都表示新的日志开始使用的时间。
rotationtime :日志文件滚动的以秒为单位的间隔时间。
offset :相对于UTC的时差的分钟数。如果省略,则假定为"0"并使用UTC时间。比如,要指定UTC时差为"-5小时"的地区的当地时间,则此参数

应为"-300"。
filesizeM :指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

原文地址:https://www.cnblogs.com/walkerwang/p/2573371.html