之前经常配置Apache,当时也学习了一波,但是时间久了就又忘记了~,下面来记录一下,方便以后如果配来查看
Apache 安装
-
Linux的安装查看:Apache2的安装与介绍
-
Windows的安装查看:Apache2 Windows 安装与介绍
详细各种示例可查看:vhosts examples
语法:
...
说明:
- 指定 ip + 端口
- 可用 * 或者 _default_ 来代表所有的 ip
example:
# 具体的ip 与 端口号..... # 所有 ip 的 80 端口号..... # 指定 ip(ipV6) 的 80 端口号..... # 一个简单配置ServerAdmin webmaster@host.example.com DocumentRoot "/www/docs/host.example.com" ServerName host.example.com ServerAlias host ErrorLog "logs/host.example.com-error_log" TransferLog "logs/host.example.com-access_log"
简单配置可配置字段:
- ServerAdmin:服务器返回给客户端的错误信息中包含的管理员邮件地址
- DocumentRoot:提供文件的目录
- ServerName:域名,一个ServerName 对应一个 VirtualHost
- ErrorLog:错误日志位置
- TransferLog:访问日志位置
- ServerAlias:ServerName 的别名,在内部网络上,可以只使用该别名
在 httpd.conf 中有设置主Server,在上述的监听,若 ServerName 没有匹配,则由主Server进行处理
# 提供文件的目录。默认情况下,所有请求都来自此目录,但符号链接和别名可用于指向其他位置。
ServerName www.example.com
DocumentRoot "${SRVROOT}/htdocs"
ServerAdmin admin@example.com
Listen 80
代理
各种字段说明可详细查看:mod_proxy
正向代理简单解释:客户端访问服务器通过代理服务器来访问,服务器不感知真实的客户端
配置example:
ProxyRequests On ProxyVia OnRequire host internal.example.com
说明:
- 只允许名称为 internal.example.com 的主机通过代理服务器访问 *(所有内容)
语法:
反向代理...
简单解释:客户端访问代理服务器,代理服务器来转发至真实服务器,客户端不感知真实的服务器
example:(若有 ProxyPass 则 ProxyRequests 则默认就为off)
ProxyPass "/foo" "http://foo.example.com/bar" ProxyPassReverse "/foo" "http://foo.example.com/bar"
说明:
- 遇到 “/foo” 前缀的请求交给 “http://foo.example.com/bar” 处理,如 /foo/example 则为 http://foo.example.com/bar/example
语法:
ProxyPass [path] !|url [key=value [key=value ...]] [nocanon] [interpolate] [noquery]
常使用举例:
ProxyPass "/mirror/foo/i" "!" ProxyPass "/mirror/foo" "http://backend.example.com"
说明:
- /mirror/foo/i 请求不进行转发
- “/mirror/foo” 的所有请求(除了/mirror/foo/i )转发至 “http://backend.example.com” 处理
proxypassreverse
这个指定一般与 ProxyPass 配合使用,主要是允许Apache httpd在HTTP重定向响应上调整位置、内容位置和URI头中的URL,以避免由于位于反向代理后面的后端服务器上的HTTP重定向而绕过反向代理
语法:
ProxyPassReverse [path] url [interpolate]
常使用举例:
ProxyPass "/mirror/foo/" "http://backend.example.com/" ProxyPassReverse "/mirror/foo/" "http://backend.example.com/"Windows 下配置代理
首先需要安装,Windows的安装查看:Apache2 Windows 安装与介绍
1、引用 Module 与 代理配置文件引用代理需要的 module ,在httpd.conf文件 在其中找到以下几句,将 前面的#去掉即可
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so
在httpd.conf文件的末尾将D:xamppapacheconfextra目录下的httpd-vhosts.conf文件引入
Include "conf/extra/httpd-vhosts.conf"2、配置代理
在httpd-vhosts.conf文件中写入配置
ProxyPass / http://localhost:7001/ ProxyPassReverse / http://localhost:7001/
更多具体的Module 与 代理可查看:mod_proxy
Linux 下配置代理首先需要安装,Linux的安装查看:Apache2的安装与介绍
Linux的代理配置就无需上述那么麻烦,因为其 etc/apache2/apache2.conf 文件依据包含了 sites-enabled 里面的 conf 文件
# Include generic snippets of statements IncludeOptional conf-enabled/*.conf # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf
配置代理仅仅需要修改 000-default.conf 文件,增加相应的代理即可
ServerAdmin webmaster@localhost DocumentRoot /var/www/html # 增加域名 ServerName host.example.com # 增加代理 ProxyPass / http://localhost:7001/ ProxyPassReverse / http://localhost:7001/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
修改后保存重启即可,相关命令在上述介绍那篇已经写的很详细了~
总结本来想把总结一下,在官网查看的时候,发现其有很多很多配置,一个需求有好几种实现方式,就不总结一个全篇了,根据具体需求进行学习吧~



