最近捣鼓了一个服务器,弄了一个小网站, 帮助家里的小生意。大家可以帮我测试测试。刚上线还没测试。。huazhemarble.com
配置服务器的时候发现还挺麻烦,最后经过网上各方大神的指点终于算是能用了。
以下的实验中,假设已经有一下几个条件.
1. 一个Ubuntu 服务器, 并且安装好Tomcat (应用服务器) 监听 8080 端口和 Apache (网络服务器)监听 80端口
2. 一个域名比如: www.hello.com
3. 一个完成的项目并打包成 test.war, 并将war文件上传到 服务器 /var/lib/tomcat7/webapps 下
首先登录DNS 的管理网站: 我使用的是Godaddy的域名,登录之后修改该域名的 A 纪录, 使用指向你的服务器的ip地址。
那么现在我们能做以下几件事:
1. 使用 www.hello.com 访问你的服务器,但是这时打开的将是你的 apache 欢迎页面
2. 使用 www.hello.com:8080 访问你的服务器, 但是这时打开的将是你的 tomcat 欢迎页面
3. 使用 www.hello.com:8080/test/home.html 来访问你的项目中的 home.html
但是我们想要的是 通过www.hello.com/home.html 访问, 这该怎么做呢?
1. 首先配置 apache 服务器的配置文件, /etc/httpd/conf.d/welcome.conf (这里的路径因服务器而已啊, 大家可以看看自己apache 欢迎页面上的相对应的配置文件是啥)
在该配置文件中的<VirtualHost *:80> 下添加以下代码, 这是将apache作为 tomcat的代理
ServerName hello.com
ServerAlias *.hello.com
ProxyRequests off
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
顺便说一下啥是正向代理和反向代理.
正向代理: 针对客户端而言, 代理服务器代理客户端, 转发请求, 并将获得的内容返回给客户端。 - 可以理解为代理端代理的是客户端
反向代理: 针对客户端而言, 代理服务器就像是原始服务器, 代理终端服务器返回结果。- 可以理解为代理端代理的是服务端
2. 配置 tomcat server.xml 配置文件, /etc/tomcat7/server.xml
在该配置文件中将Host标签的标签头改一下,并且在标签内部添加一行代码
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="test" debug="0" reloadable="true" />
3. 测试! 并且注意,对你的所有更改都做记录,以防出错!
什么是A记录: A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的服务器上。
Reference: 设置代理https://rvdb.wordpress.com/2012/04/26/reverse-proxying-tomcat-webapps-behind-apache/
有问题欢迎指出