把reb工程部署到linux上面,遇见如下几个问题,记录备案。
1、reb-service,dubbo的服务提供者,部署的时候,日志显示ip指到外网了,因为linux上是多网卡,所以dubbo的配置文件需要指定本机ip。可以参考http://dubbo.io/的开发文档。
<dubbo:provider> host <host> string 可选 自动查找本机IP 服务发现 服务主机名,多网卡选择或指定VIP及域名时使用,为空则自动查找本机IP,建议不要配置,让Dubbo自动获取本机IP
<dubbo:application name="reb-service" />
<dubbo:registry address="zookeeper://10.6.2.96:2181" />
<dubbo:protocol name="dubbo" port="20881" host="10.6.2.95"/>
2、一个tomcat部署多个应用,并且每个应用都用80端口不带工程名访问。修改tomcat下面的server.xml.
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.quds.com" appBase="quds"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
3、80端口必须linux的root用户启动,默认情况下Linux的1024以下端口是只有root用户才有权限占用。