apache服务器的搭建配置以及正反向代理
2016-03-22 21:39
447 查看
一开始写总结的时候,我刚刚配置了apache服务器的URL重写和访问规则顺手就写了,现在发现我应该先写apache服务器基本知识来着…
(1)首先如何安装apache服务器:
因为我喜欢写php(世界上最好的语言)脚本,我的服务器是用phpstudy搭建的,不需要太多改动,如果不是用这种开发环境搭建的,在官网下载最新的apache server手动安装就好了。初学者建议使用集成开发环境。
(2) apache服务器的基本配置:
首先要apache服务器监听80端口 打开httpd文件搜索Listen 找到改成Listen 80就行了;搜索DocumentRoot修改后面地址,改成你服务器放置网站的文件夹,搜索<IfModule log_config_module> 这是用来配置apache服务器的日志的, 将 CustomLog"logs/access.log" combined前面的#号去掉启用日志功能,你还可以去配置日志的格式,具体方法自行百度吧,我这里就不写了,日志格式我很少去管他,东西也比较多,写的时候都是百度的…
下面我来说一下apache服务器的多站点,说起多站点,还是IIS的图形化界面看起来亲民,不过IIS并发稳定性我已经无奈,虽然升华网搭建在IIS上面,但是我并不喜欢IIS,有时间了改在apache上面吧,关于并发的稳定性相关配置知识以后再说,总之IIS不是很好用…不知道微软网站如何做到稳定性的,负载均衡得做的多好呀。
打开vhosts.conf文件(如果没有,建议自行创建然后再httpd文件加入Include conf/vhosts.conf 引入)
<VirtualHost *:80>
DocumentRoot C:\xxx\xxx
ServerName xxx.xxx.cn
ProxyPass /xx/ http://localhost:8080
ProxyPassReverse /xx/ http://localhost:8080
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:\xxx\yyy
ServerName yyy.xxx.cn
ProxyPass /zz/ !
ProxyPass /xx/ http://localhost:8080
ProxyPassReverse /xx/ http://localhost:8080
</VirtualHost>
这样就建立了两个站点,都是监听80端口,apache的多站点是通过虚拟主机(VirtualHost)来实现的,所以建立几个站点就建立几个虚拟主机就好啦,如果多个网站指向同一个站点可以在ServerName 这项添加多个域名中间空格隔开。
这里顺便说一下Proxy知识吧,哎,提前没有规划好,想起来啥说啥,先这样子吧,最近状态不好不想写代码,时间还是比较充裕的,多写写总结~
这个是apache的代理,代理分为正向代理和反向代理,正向代理就是我们平常所说的代理,他是翻墙的一种手段,网上的免费代理服务器也是很多
哎,墙外人们都生活在水深火热之中,还是生活在墙里面好,而且通过这种免费的代理服务器,你上网的数据都被代理服务器截获了,所以不建议用这种免费的代理服务器,有安全隐患。
正向代理是你告诉代理服务器你要访问什么网页,代理服务器通过你的请求将目标网页获取下来转发给你;而反向代理是你访问代理服务器,代理服务器在别处获取网页信息并转发给你,你并不知道你访问的网页的真实地址,只知道一个代理服务器和你访问代理服务器的URL。
正向代理一般很少去搭建,而反向代理是一项很有用的技术,他可以掩藏你的真实ip,网址和端口,而且通过反向代理你可以搭建自己的负载均衡网络,现在规模不小的公司都是采用代理服务器的形式的,比如你访问的www.baidu.com只是指向百度的代理服务器,而代理服务器后面是分布在全国各个数据中心的服务器集群。
(1)首先确保一下模块都被加载了
mod_proxy.so
mod_proxy_ajp.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_ftp.so
mod_proxy_http.so
其实如果你是用phpstudy这类集成开发环境,这些模块都被默认开启了~
(2)正确书写Proxy部分
ProxyPass /zz/ !
!号表示禁止代理,也就是访问这个虚拟主机本来的目录
ProxyPass /xx/ http://localhost:8080
这个表示所有http://xxx.com/xx/...请求都被转发到8080这个端口了,如果你的主站是php写的而其中某些模块是jsp写的可以用这个方式转发到tomcat上面。
ProxyPassReverse /xx/ http://localhost:8080
它一般和ProxyPass指令配合使用,此指令使Apache调整HTTP重定向应答中Location,Content-Location, URI头里的URL,这样可以避免在Apache作为反向代理使用时,。后端服务器的HTTP重定向造成的绕过反向代理的问题。
ProxyPassReverse的作用就是反向代理,如果没有加这样的反向代理设置的情况下,访问http://www. xx.com/ xx /a,如果www. xx.com对请求进行了redirect至http://www. xx.com/b,那么,客户端就会绕过反向代理,进而访问http://www. xx.com/ xx /b。如果设置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为http://www. xx.com/ xx /a/b,即是在原请求之后追加上了redirect的路径。
还有一个是ProxyPassMatch,这个我没有在服务器使用,不过也在这里写一下吧
他的语法是:ProxyPassMatch[regex] !|url
这个实际上是url正则匹配,而不是简单的前缀匹配,匹配上的regex部分是会带到后端的url的,这个是与ProxyPass不同的。使用示例:
1、ProxyPassMatch ^/images !
这个示例表示对/images的请求,都不会被转发。
2、ProxyPassMatch ^(/.*\.gif)$ http://zz.xx.com$1
这个示例表示对所有gif图片的请求,都被会转到后端,如此时请求http://xx.com/xx/zz.gif,那内部将会转换为这样的请求http://zz.xx.com/xx/zz.gif。
其实还可以搭建负载均衡网络,我就一台服务器就不搞负载均衡了...
没怎么写过这些,排版好头疼,就这样子吧,仔细看应该可以看懂我在写什么吧…但愿之后我自己可以看懂…
(1)首先如何安装apache服务器:
因为我喜欢写php(世界上最好的语言)脚本,我的服务器是用phpstudy搭建的,不需要太多改动,如果不是用这种开发环境搭建的,在官网下载最新的apache server手动安装就好了。初学者建议使用集成开发环境。
(2) apache服务器的基本配置:
首先要apache服务器监听80端口 打开httpd文件搜索Listen 找到改成Listen 80就行了;搜索DocumentRoot修改后面地址,改成你服务器放置网站的文件夹,搜索<IfModule log_config_module> 这是用来配置apache服务器的日志的, 将 CustomLog"logs/access.log" combined前面的#号去掉启用日志功能,你还可以去配置日志的格式,具体方法自行百度吧,我这里就不写了,日志格式我很少去管他,东西也比较多,写的时候都是百度的…
下面我来说一下apache服务器的多站点,说起多站点,还是IIS的图形化界面看起来亲民,不过IIS并发稳定性我已经无奈,虽然升华网搭建在IIS上面,但是我并不喜欢IIS,有时间了改在apache上面吧,关于并发的稳定性相关配置知识以后再说,总之IIS不是很好用…不知道微软网站如何做到稳定性的,负载均衡得做的多好呀。
打开vhosts.conf文件(如果没有,建议自行创建然后再httpd文件加入Include conf/vhosts.conf 引入)
<VirtualHost *:80>
DocumentRoot C:\xxx\xxx
ServerName xxx.xxx.cn
ProxyPass /xx/ http://localhost:8080
ProxyPassReverse /xx/ http://localhost:8080
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:\xxx\yyy
ServerName yyy.xxx.cn
ProxyPass /zz/ !
ProxyPass /xx/ http://localhost:8080
ProxyPassReverse /xx/ http://localhost:8080
</VirtualHost>
这样就建立了两个站点,都是监听80端口,apache的多站点是通过虚拟主机(VirtualHost)来实现的,所以建立几个站点就建立几个虚拟主机就好啦,如果多个网站指向同一个站点可以在ServerName 这项添加多个域名中间空格隔开。
这里顺便说一下Proxy知识吧,哎,提前没有规划好,想起来啥说啥,先这样子吧,最近状态不好不想写代码,时间还是比较充裕的,多写写总结~
这个是apache的代理,代理分为正向代理和反向代理,正向代理就是我们平常所说的代理,他是翻墙的一种手段,网上的免费代理服务器也是很多
哎,墙外人们都生活在水深火热之中,还是生活在墙里面好,而且通过这种免费的代理服务器,你上网的数据都被代理服务器截获了,所以不建议用这种免费的代理服务器,有安全隐患。
正向代理是你告诉代理服务器你要访问什么网页,代理服务器通过你的请求将目标网页获取下来转发给你;而反向代理是你访问代理服务器,代理服务器在别处获取网页信息并转发给你,你并不知道你访问的网页的真实地址,只知道一个代理服务器和你访问代理服务器的URL。
正向代理一般很少去搭建,而反向代理是一项很有用的技术,他可以掩藏你的真实ip,网址和端口,而且通过反向代理你可以搭建自己的负载均衡网络,现在规模不小的公司都是采用代理服务器的形式的,比如你访问的www.baidu.com只是指向百度的代理服务器,而代理服务器后面是分布在全国各个数据中心的服务器集群。
(1)首先确保一下模块都被加载了
mod_proxy.so
mod_proxy_ajp.so
mod_proxy_balancer.so
mod_proxy_connect.so
mod_proxy_ftp.so
mod_proxy_http.so
其实如果你是用phpstudy这类集成开发环境,这些模块都被默认开启了~
(2)正确书写Proxy部分
ProxyPass /zz/ !
!号表示禁止代理,也就是访问这个虚拟主机本来的目录
ProxyPass /xx/ http://localhost:8080
这个表示所有http://xxx.com/xx/...请求都被转发到8080这个端口了,如果你的主站是php写的而其中某些模块是jsp写的可以用这个方式转发到tomcat上面。
ProxyPassReverse /xx/ http://localhost:8080
它一般和ProxyPass指令配合使用,此指令使Apache调整HTTP重定向应答中Location,Content-Location, URI头里的URL,这样可以避免在Apache作为反向代理使用时,。后端服务器的HTTP重定向造成的绕过反向代理的问题。
ProxyPassReverse的作用就是反向代理,如果没有加这样的反向代理设置的情况下,访问http://www. xx.com/ xx /a,如果www. xx.com对请求进行了redirect至http://www. xx.com/b,那么,客户端就会绕过反向代理,进而访问http://www. xx.com/ xx /b。如果设置了反向代理,则会在转交HTTP重定向应答到客户端之前调整它为http://www. xx.com/ xx /a/b,即是在原请求之后追加上了redirect的路径。
还有一个是ProxyPassMatch,这个我没有在服务器使用,不过也在这里写一下吧
他的语法是:ProxyPassMatch[regex] !|url
这个实际上是url正则匹配,而不是简单的前缀匹配,匹配上的regex部分是会带到后端的url的,这个是与ProxyPass不同的。使用示例:
1、ProxyPassMatch ^/images !
这个示例表示对/images的请求,都不会被转发。
2、ProxyPassMatch ^(/.*\.gif)$ http://zz.xx.com$1
这个示例表示对所有gif图片的请求,都被会转到后端,如此时请求http://xx.com/xx/zz.gif,那内部将会转换为这样的请求http://zz.xx.com/xx/zz.gif。
其实还可以搭建负载均衡网络,我就一台服务器就不搞负载均衡了...
没怎么写过这些,排版好头疼,就这样子吧,仔细看应该可以看懂我在写什么吧…但愿之后我自己可以看懂…
相关文章推荐
- java-用HttpURLConnection发送Http请求.
- 小心服务器内存居高不下的元凶--WebAPI服务
- 运维入门
- Apache Isis 1.4.0 发布,领域驱动开发框架
- RH436 Day3 课后总结
- 利用开源软件打造自己的全功能远程工具
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- Awstats处理多apache日志
- 服务器监控策略浅谈
- 安装perl模块小窍门
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- 服务器托管六大优势分析
- Erlang实现的一个Web服务器代码实例
- 服务器技术全面解析