Ubuntu12.04下 mod_jk整合 java项目与php项目

本文介绍如何使用mod_jk在同一台Ubuntu服务器上整合Apache的PHP项目与Tomcat的Java项目,实现两者共用80端口发布。主要内容包括安装配置过程及注意事项。
由于项目的需要,需要把php和java项目同时采用80端口进行发布,本文采用mod_jk进行不同项目的整合。把原来位于apatch中的php项目与tomcat下运行的java项目进行整合发布。
整合的平台与软件版本:
  1. OS:Ubuntu12.04
  2. tomcat6.0.16
  3. jdk1.7.0_03
  4. apache2.2.22
  5. mod_jk
  6. java项目位于:/home/hkr/project/sd/tomcat-6.0.14/webapps/myjavaproject 中;php项目位于/var/www/myphpproject 中
主要步骤如下:
  1. tomcat6.0.16安装:http://tomcat.apache.org/直接下载解压即可
  2. jdk1.7.0_03安装:参考网络安装jdk的方法(http://blog.youkuaiyun.com/ritterliu/article/details/7525412)
  3. apache2.2.22安装:$sudo apt-get install apache2
  4. mod_jk的安装:$sudo apt-get install libapache2-mod-jk
  5. 配置mod_jk,mod_jk的配置主要有以下三个地方:
    1. 配置workers.properties(连接到Tomcat的文件)sudo gedit/etc/libapache2-mod-jk/workers.properties,配置下面参数:
      • workers.tomcat_home=/home/hkr/project/sd/tomcat-6.0.14#tomcat位置
      • workers.java_home=/usr/lib/jvm/jdk1.7.0_03#java_home位置
      • worker.list=ajp13_worker#自定义命名即可
      • worker.ajp13_worker.port=8009#用8080会报错
      • worker.ajp13_worker.host=192.168.1.102#本机ip地址
      • worker.ajp13_worker.type=ajp13
      • worker.ajp13_worker.lbfactor=1
      • worker.loadbalancer.type=lb
      • worker.loadbalancer.balance_workers=ajp13_worker
    2. apache2中 apache2.conf配置:$gedit /etc/apache2/apache2.conf,在文件最后空白处加上以下内容:
      • AddType application/x-httpd-php .php .htm .html
        serverName 192.168.1.102

        #JkWorkersFile /etc/libapache2-mod-jk/workers.properties(这个需要注释,加上会出现apache启动时报错: JkWorkersFile only allowed once)
        JkLogFile /var/log/apache2/mod_jk.log
        JkLogLevel info
        JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
        JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
        JkRequestLogFormat "%w %V %T"
    3. apache2中default的配置,$gedit /etc/apache2/sites-available/default,在</VirtualHost>之前增加:
      • JkMount /*.jspajp13_worker(5.1中worker.list的值)
      • JkMount /*.doajp13_worker
      • ....(其他java项目项目的代理,如果java项目在一个工程下,可以配置JkMount /java项目名/*ajp13_worker,如果配置/* 会把所有php的范围也代理到tomcat中,导致php项目无法访问,因此这里只需要配置tomcat下工程的访问路劲即可
    4. 配置完成后$sudo /etc/init.d/apache2 reload,然后$sudo /etc/init.d/apache2 restart,即可通过ip进行直接访问tomcat和php的项目。
以上内容已在本机virtualBox中测试通过,欢迎交流:)
<think> 我们正在讨论在Ubuntu系统上搭建OTA升级服务器的方法。根据引用内容,有几个关键点需要注意: 1. 引用[2]提到在Ubuntu 16.04上搭建全志OTA服务器时遇到了问题,建议使用低版本Ubuntu(如12.04)或者使用Redhat Enterprise Linux AS 6.2。 2. 引用[3]和[引用4]提供了在Ubuntu 16.04上搭建OTA服务器的方法,使用了apache2和tomcat8(或tomcat6)的组合。 因此,我们可以提供两种方案: 方案一:使用较低版本的Ubuntu(如12.04)以避免兼容性问题(如引用[2]建议)。 方案二:在Ubuntu 16.04上按照引用[3]和引用[4]的方法搭建,但需要注意一些步骤。 由于用户明确询问Ubuntu系统,我们重点提供Ubuntu上的方案。考虑到引用[3]和[4]都是在Ubuntu16.04上进行的,我们以Ubuntu16.04为例,同时提醒用户注意可能遇到的问题。 步骤概览: 1. 安装并配置Apache2 2. 安装Java和Tomcat 3. 配置Tomcat和Apache2的连接(使用mod_jk) 4. 部署OTA升级服务到Tomcat 5. 配置HTTPS(安全性要求) 详细步骤: ### 1. 系统更新 ```bash sudo apt-get update sudo apt-get upgrade ``` ### 2. 安装Apache2 ```bash sudo apt-get install apache2 ``` ### 3. 安装Java环境 ```bash sudo apt-get install openjdk-8-jdk ``` ### 4. 安装Tomcat8 ```bash sudo apt-get install tomcat8 tomcat8-admin ``` ### 5. 安装mod_jk(用于Apache2和Tomcat连接) ```bash sudo apt-get install libapache2-mod-jk ``` ### 6. 配置mod_jk 编辑`/etc/apache2/mods-enabled/jk.conf`,确保内容如下(或类似): ```apache <IfModule jk_module> JkWorkersFile /etc/libapache2-mod-jk/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkShmFile /var/log/apache2/jk-runtime-status JkRequestLogFormat "%w %V %T" </IfModule> ``` 配置workers文件`/etc/libapache2-mod-jk/workers.properties`: ```properties worker.list=ajp13_worker worker.ajp13_worker.type=ajp13 worker.ajp13_worker.host=localhost worker.ajp13_worker.port=8009 ``` ### 7. 配置Apache虚拟主机 创建虚拟主机配置文件`/etc/apache2/sites-available/ota.conf`: ```apache <VirtualHost *:80> ServerName your_domain_or_ip JkMount /* ajp13_worker ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> ``` 启用该站点并重启Apache: ```bash sudo a2ensite ota.conf sudo systemctl restart apache2 ``` ### 8. 部署OTA服务到Tomcat 将OTA升级服务的WAR包(例如update.war)放置在`/var/lib/tomcat8/webapps/`目录下。Tomcat会自动解包部署。 ### 9. 配置HTTPS(重要) 使用Let's Encrypt免费证书: ```bash sudo apt-get install certbot python-certbot-apache sudo certbot --apache ``` ### 10. 验证 访问:`http://your_domain_or_ip:8080/update/form.jsp`(或者通过Apache代理的80端口访问,具体路径取决于WAR包内的结构) ### 注意事项 1. 如果使用全志的OTA方案,需要将全志提供的OTA服务包(通常是一个WAR包)部署到Tomcat。引用[4]中提到了将update复制到webapps目录。 2. 引用[2]中提到的在Ubuntu16.04上搭建全志OTA服务器的问题,主要是编译tomcat-connectors的问题。但这里我们使用apt安装mod_jk,避免了编译问题。 3. 安全实践:使用HTTPS加密传输,对服务器进行身份验证和授权,定期审查日志[^1]。 ### 可能遇到的问题及解决 - **端口冲突**:Tomcat默认监听8080端口,而Apache监听80端口。通过mod_jk将Apache的请求转发到Tomcat的8009端口(AJP协议)。 - **文件夹不存在**:确保使用正确的Tomcat版本(这里使用tomcat8,目录为`/var/lib/tomcat8`)。在Ubuntu16.04中,默认安装的Tomcat版本为8,而引用[4]中使用的是tomcat6,因此路径不同。 - **权限问题**:确保Tomcat用户有权限访问OTA服务包。 ### 总结 以上步骤提供了在Ubuntu16.04上搭建OTA升级服务器的基本方法。实际部署时,需要根据具体的OTA服务包(如全志提供的包)进行适当调整。同时,务必遵循安全最佳实践,如使用HTTPS、身份验证等[^1]。 §§相关问题§§: 1. 如何为OTA服务器配置用户身份验证? 2. 如何监控OTA升级日志? 3. 如何处理大规模设备同时升级时的服务器负载问题? 4. Ubuntu 18.04或更高版本上搭建OTA服务器有什么不同? </think>根据引用资料,在Ubuntu系统上搭建OTA升级服务器的步骤如下(以Ubuntu 16.04为例): ### 搭建步骤 1. **安装依赖环境** ```bash sudo apt-get update sudo apt-get install apache2 openjdk-8-jdk ``` 2. **安装Tomcat服务器** ```bash sudo apt-get install tomcat8 ``` 3. **部署OTA升级服务** ```bash # 将OTA升级包复制到Tomcat目录 sudo cp update.war /var/lib/tomcat8/webapps/ ``` 4. **配置Apache反向代理** ```apacheconf <!-- /etc/apache2/sites-available/000-default.conf --> ProxyPass / http://localhost:8080/update/ ProxyPassReverse / http://localhost:8080/update/ ``` 5. **启动服务** ```bash sudo service tomcat8 start sudo systemctl restart apache2 ``` 6. **验证安装** 访问测试地址: `http://服务器IP:8080/update/form.jsp`[^4] ### 关键注意事项 1. **版本兼容性** - 推荐使用Tomcat8 + OpenJDK 8组合(已验证兼容)[^3] - 避免使用Tomcat6(在Ubuntu 16.04存在兼容问题)[^2] 2. **目录结构** ```tree /var/lib/tomcat8/webapps/ └── update.war # OTA升级包 ``` 3. **端口配置** - Apache默认端口:80 - Tomcat默认端口:8080 - 可通过修改`/etc/tomcat8/server.xml`调整端口 4. **安全增强** ```bash # 启用HTTPS sudo a2enmod ssl sudo certbot --apache ``` 建议实施: - 服务器身份验证 - 传输加密 - 访问日志审计[^1] ### 故障排查 1. **服务未启动** ```bash sudo systemctl status tomcat8 # 检查服务状态 journalctl -xe # 查看详细日志 ``` 2. **文件权限问题** ```bash sudo chown -R tomcat8:tomcat8 /var/lib/tomcat8/webapps ``` 3. **端口冲突** ```bash netstat -tuln | grep 8080 # 检查端口占用 ``` ### 验证方法 1. 访问`http://服务器IP/update/version`应返回固件版本信息 2. 使用设备模拟升级请求: ```bash curl -X POST http://服务器IP/update/check -d "device_id=123&current_ver=1.0" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值