启动WSO2 ELB时,当系统尝试启动传递HTTP和HTTPS侦听器时,我在日志中出现以下错误:
WARN {org.apache.synapse.transport.passthru.PassThroughHttpSSLListener} - System may be unstable: HTTPS ListeningIOReactor encountered a checked exception : Permission denied {org.apache.synapse.transport.passthru.PassThroughHttpSSLListener}
为什么许可被拒绝?这是文件权限吗?如果是这样,应该将哪个文件/目录更改为哪些设置?或者它完全是另一回事?
这些是axis2.xml中的相关设置:
<transportReceiver name="http" class="org.apache.synapse.transport.passthru.PassThroughHttpListener">
<parameter name="port">80</parameter>
<parameter name="non-blocking"> true</parameter>
<parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
</transportReceiver>
<transportReceiver name="https" class="org.apache.synapse.transport.passthru.PassThroughHttpSSLListener">
<parameter name="port" locked="false">443</parameter>
<parameter name="non-blocking" locked="false">true</parameter>
<parameter name="httpGetProcessor" locked="false">org.wso2.carbon.transport.nhttp.api.PassThroughNHttpGetProcessor</parameter>
<!--parameter name="bind-address" locked="false">hostname or IP address</parameter-->
<!--parameter name="WSDLEPRPrefix" locked="false">https://apachehost:port/somepath</parameter-->
<parameter name="keystore" locked="false">
<KeyStore>
<Location>repository/resources/security/wso2carbon.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
<KeyPassword>wso2carbon</KeyPassword>
</KeyStore>
</parameter>
<parameter name="truststore" locked="false">
<TrustStore>
<Location>repository/resources/security/client-truststore.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
</TrustStore>
</parameter>
<!--<parameter name="SSLVerifyClient">require</parameter>
supports optional|require or defaults to none -->
</transportReceiver>
我更改的唯一设置是端口参数,包括HTTP和HTTPS。其余设置是标准的,因为这是一个测试环境。
提前谢谢。
更新:如果我将端口保留为默认值8280(HTTP)和8243(HTTPS),则没有错误。
答案 0 :(得分:0)
您可以通过更改wso2_home / repository / conf / carbon.xml中的偏移来更改端口。请参阅wso2 wiki以进一步理解offset的概念。您不必设置任何文件,只需更改偏移量即可更改您想要的其他端口。
实施例。 默认端口偏移量为0,http和https的相应端口为8280和8243.
如果将其更改为1,则http和https的相应端口为8281和8244.
答案 1 :(得分:0)
问题与端口偏移无关。该权限被拒绝引起异常,因为1024以下的端口只能由root打开。 您可以尝试以下解决方案之一:
如果您使用的是unix操作系统,则可以使用iptables重定向端口,如下例所示:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080