文章分类

相关文章

Apache、IIS、Tomcat共用80端口

分类:学习总结     发布:2018-10-31     来源:本站     浏览:109 次
一、背景介绍
根据业务需求,在windows服务器上需部署用.Net开发的IIS网站和用Java开发Tomcat网站。

二、实现思路
由Apache占用80端口,开启代理模式,将请求转发到IIS或Tomcat,通过配置 httpd-vhost.conf 实现端口共用。

三、实现步骤

1.开启IIS服务器功能。
(在控制面板-》程序和功能-》打开和关闭windows功能 配置即可,此处不做描述)

2.安装并配置Tomcat服务器。
(1)下载地址:https://tomcat.apache.org/download-90.cgi,下载安装程序包。

(2)然后下一步下一步的根据提示操作就可以了,如果没装JDK,需要先安装JDK,安装过程中会让设置JDK安装位置。
(3)Tomcat的配置文件在:Tomcat 9.0\conf\Server.xml,注意tomcat使用非80端口即可。

3.安装并配置Apache httpd服务器。

(1)下载Apache
32位的Apache的下载安装:http://jingyan.baidu.com/album/2f9b480dae458f41cb6cc2ce.html?picindex=2
64位的Apache的下载安装: http://httpd.apache.org
64位云盘分享:链接: https://pan.baidu.com/s/1kU6R0nP 密码: 1cy8 (httpd-2.4.16-win64-VC14.zip)

1. 将 文件解压出来后,放入自定义目录即可,如我的文件路径为C:\Apache24
2. 打开bin/下的ApacheMonitor.exe,如此时提示缺少某系统文件,自行下载即可,我的可直接打开。
3. 打开成功后,需要修改默认配置项,conf/目录下的httpd.conf配置文件:
37行: ServerRoot "apache目录" (e.g. C:/apache24 改为 D:/apache24)
218行:ServerName 服务器名称 (e.g demo.app.com or 127.0.0.1)注意去掉#(这里也可填 localhost)
241行:DocumentRoot "修改网站根目录地址" (e.g. D:/apache24/htdocs/)
243行:<Directory "网站根目录地址"> (e.g. D:/apache24/htdocs/)
359行:ScriptAlias /cgi-bin/ "apache目录%2B/cgi-bin/"
375行:<Directory "apache目录%2B/cgi-bin/">
根据自己的情况进行相应的修改,(注意路径中的斜杠方向)。
4. 修改完配置文件后,同样Apache还是不能正常开启,需要先安装Apache服务。
(安装目录的\bin目录下,找到httpd.exe)
注意,cmd应使用管理员权限运行(右键.exe管理员身份),否则会出现以下错误

安装成功后界面提示如下:

5. 启动Apache服务即可
继续输入该命令启动:httpd.exe -k start -n "Apache24"
同样的,如需重启服务,命令为: -k restart  卸载命令 -k uninstall
6. 打开ApacheMonitor.exe。点击start即可
若上面配置后仍然无法启动Apache,则可能是IIS占用了80端口,需要抢占过来。
参考:https://blog.csdn.net/smile_shaco/article/details/74787612 

(2)更改被IIS占用的80端口
因为要使用Apache的路由转发模块,所以入口都是从Apache进来,需要把80端口给Apache用。

1.打开cmd,运行'netstat -ano'发现80端口被pid=4的进程占用
2.打开任务管理器,发现pid=4的进程,其实是system进程,其对应的进程描述是NT kernel & system。
3.Window %2B R,打开“运行窗口”,输入“regedit”
4.找到HKEY_LOCAL_MACHINE目录
5.找到System
6.找到CurrentControlSet-Services
7.找到http-start
8.打开,将3改为4,确定
9.重启电脑
10.重复1-7操作,将4改回3,重启电脑。(我也不知道为什么,改回来重启就可以解除80端口占用了,否则WWW服务无法启动)。
参考:http://www.cnblogs.com/tianhengblogs/p/9292347.html

(3)配置Apache服务器
假设apache服务器已经安装完成,打开\conf\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
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  
还有确保这里也取消了注释:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

再修改\conf\extra\httpd-vhosts.conf 文件,增加类似下面这样的配置
<VirtualHost *:80>
    ServerName qingshanboke.com
    ProxyPass / http://localhost:802/
    ProxyPassReverse / http://localhost:802/
</VirtualHost>
即请求域名为qingshanboke.com时,转发到http://localhost:802/localhost:802即是IIS上的一个绑定本地端口的站点

至此,配置完成。

上一篇:会议纪要的写法(含样本)

下一篇:如何共享打印机