栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Apache2 代理配置(Windows、Linux)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Apache2 代理配置(Windows、Linux)

Apache2 代理配置

之前经常配置Apache,当时也学习了一波,但是时间久了就又忘记了~,下面来记录一下,方便以后如果配来查看

Apache 安装

  • Linux的安装查看:Apache2的安装与介绍

  • Windows的安装查看:Apache2 Windows 安装与介绍

前言 VirtualHost

详细各种示例可查看: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 On

  Require host internal.example.com

说明:

  • 只允许名称为 internal.example.com 的主机通过代理服务器访问 *(所有内容)
proxy

语法:

 ...
反向代理

简单解释:客户端访问代理服务器,代理服务器来转发至真实服务器,客户端不感知真实的服务器

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

语法:

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


修改后保存重启即可,相关命令在上述介绍那篇已经写的很详细了~

总结

本来想把总结一下,在官网查看的时候,发现其有很多很多配置,一个需求有好几种实现方式,就不总结一个全篇了,根据具体需求进行学习吧~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号