什么是反向代理?
例用户访问 http://ooxx.me/readme
但ooxx.me上并不存在readme页面
他是偷偷从另外一台服务器上取回来,然后作为自己的内容吐给用户
但用户并不知情
这很正常,用户一般都很笨
这里所提到的 ooxx.me 这个域名对应的服务器就设置了反向代理功能
结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。
==========================================分割线========================================================
配置步骤:
1,下载Apache24,并且安装
2,打开httpd.conf文件
3,在其中找到
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
这两个模块是用来转发的,取消注释,释放出来
4,找到Include conf/extra/httpd-vhosts.conf,取消注释,释放出来
5,在相对应的文件夹中找到httpd-vhosts.conf文件,并且打开
6,找到
<VirtualHost _default_:80>
#ServerName www.example.com:80
DocumentRoot "${SRVROOT}/htdocs"
</VirtualHost>
7,在后面添加
ProxyRequests Off
ProxyPass /***(你想要访问的地址) http://*******(想要代理的地址)
ProxyPassReverse /***(你想要访问的地址) http://*******(想要代理的地址)
比如说我想在浏览器中输入localhost,但实际获取的内容是www.baidu.com的话就可以设置为ProxyPass /***(你想要访问的地址) http://*******(想要代理的地址)
,第二个ProxyPassReverse
是做域名重定向使用的,如果你代理的那个地址重定向的跳到另一个地方,有了ProxyPassReverse
的设置就可以相应的跳转过去 没有的话可能就会报错
如果想让别的电脑访问自己电脑的外网地址就可以访问自己服务器可以设置一下httpd.conf
中的<Directory "${SRVROOT}/htdocs">
把 Require all denied
改为Require all granted
允许所有的请求和访问
本人配置好之后的文件内容为:
<VirtualHost _default_:80>
DocumentRoot "${SRVROOT}/htdocs"
#ServerName www.example.com:80
ServerName www.example.com
ProxyRequests Off
ProxyPass / http://www.baidu.com
ProxyPassReverse / http://127.0.0.1
</VirtualHost>
参考:
https://www.cnblogs.com/zemliu/archive/2012/04/18/2454655.html
https://www.jianshu.com/p/475ef0ccc421