I have built an application that tries to enable a connection in as many network conditions as possible. We have a preference for speed, but want to provide access for as many users as possible. We found that in some cases with packet-inspecting proxies, the only way to have a connection is using RTMPS. Because the packets are encrypted end-to-end, the proxy cannot inspect them and has to let them pass.
So, our application tries to connect using the following protocols:
rtmpe:1995
rtmpe:443
rtmpe:80
rtmpte:80
rtmpt:80
rtmps:443
The problem is that I have not found a way to configure Wowza such that it can listen for both rtmpe and rtmps connections on the same port. In the VHost.xml file, there are 2 separate sections: one for rtmps and one for all the other protocols. If I enable the SSL section with port 443, I cannot activate port 443 on the ‘regular’ section and Wowza will not respond to rtmpe on port 443. I have been able to set up a server with 2 IP addresses, but this is not ideal.
Is there a way to set Wowza up so that it will listen for both rtmpe and rtmps connections on the same port and IP address?
Regards,
Sander Kruger.
Sander,
The HostPort in the default /conf/VHost.xml file you refer to is commented out. If you still have it commented out. If you uncomment it you will be able to use port 443. When you re-start Wowza check the start-up lines in the access log to be sure Wowza is able to bind to that port. If not there is probably a web server using 443.
You can use any port with either protocol. Every protocol has default port, to use another port you just have to use it explicitly. For example:
rtmpe://[wowza-address]:443/vod
RTMPS uses 443 by default:
rtmps://[wowza-address]/vod
Richard
Right, you can’t have port 443 defined in two HostPorts that have the same IpAddress. You only need one.
If 443 is enabled and you are binding successfully, it should work with rtmpe. Do you have the RTMPE Addon ? If you do, what happens when you try to playback with rtmpe with 443. Does it work with default port.
Richard
Richard,
I don’t have the HostPort section for SSL commented out. It is active and binds to port 443. If I bind the ‘default’ HostPort section to 443, Wowza will not start correctly because it tries to bind to the same port twice (as with the config below). That is my problem.
<HostPortList>
<HostPort>
<ProcessorCount>4</ProcessorCount>
<IpAddress>*</IpAddress>
<!-- Separate multiple ports with commas -->
<!-- 80: HTTP, RTMPT -->
<!-- 554: RTSP -->
<Port>80,443,1935</Port>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<!-- suggested settings for video on demand applications
<ReceiveBufferSize>24000</ReceiveBufferSize>
<SendBufferSize>65000</SendBufferSize>
-->
<!-- suggest settings for low latency chat and video recording applications -->
<ReceiveBufferSize>16000</ReceiveBufferSize>
<SendBufferSize>16000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming</HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPCrossdomain</BaseClass>
<RequestFilters>*crossdomain.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPClientAccessPolicy</BaseClass>
<RequestFilters>*clientaccesspolicy.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
<!-- 443 with SSL -->
<HostPort>
<ProcessorCount>4</ProcessorCount>
<IpAddress>*</IpAddress>
<Port>443</Port>
<SSLConfig>
<KeyStorePath>${com.wowza.wms.context.VHostConfigHome}/conf/keystore.cert</KeyStorePath>
<KeyStorePassword>[password]</KeyStorePassword>
<KeyStoreType>JKS</KeyStoreType>
<SSLProtocol>TLS</SSLProtocol>
<Algorithm>SunX509</Algorithm>
<CipherSuites></CipherSuites>
<Protocols></Protocols>
</SSLConfig>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>24000</ReceiveBufferSize>
<SendBufferSize>65000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming</HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPClientAccessPolicy</BaseClass>
<RequestFilters>*clientaccesspolicy.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPCrossdomain</BaseClass>
<RequestFilters>*crossdomain.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
If on the other hand, I remove port 443 from the first HostPort section, the application no longer accepts RTMPE connections on port 443.
Is there anyway to have both?
Regards,
Sander.