Access Oracle Http server(OHS) in a LAN - java

I have configured OHS server infront of Weblogic to forward all request from OHS to WL server and it's working fine in local machine(where both WL and OHS are installed) and I could access the application deployed on WebLogic using OHS port.
http://localhost:OHS_port/MyApp/,
http://host_IP:OHS_port/MyApp/ and
http://127.0.0.1:OHS_port/MyApp/
all these url's working fine in the same machine where OHS and weblogic servers are deployed.
But when I try to access the same in LAN using OHS server port ,I am unable to access the application(http://host_IP:OHS_port/MyApp/), but same is accessible using weblogic port(http://host_IP:WL_port/MyApp/).
httpd.conf -
Listen 7777
ServerName 10.0.0.10:7777
(Rest of details in this files are default values)
mod_wl_ohs.conf -
<IfModule weblogic_module>
<Location /MyApp>
WLSRequest On
WebLogicHost 10.0.0.10
WeblogicPort 7001
</Location>
</IfModule>
Any idea why I am unable to access with OHS port? Is this something to do with firewall? If firewall issue, how I am able to access with weblogic port and not with OHS(I tried exchanging OHS and WL port and still the behavious is same(works with new weblogic port but not with OHS port)).
Thanks

Your ServerName value should be the host name that you want OHS to respond on or the LAN IP address.
For instance, if the IP address of the machine is 10.1.1.10 and the hostname is myohs.mydomain.com, use the following:
ServerName myohs.mydomain.com
Also, be sure DNS is mapping myohs.mydomain.com to 10.1.1.10.

Related

Sending emails behind firewall using Apache

I've got one Debian server with access to the Internet and Apache installed on it, and it can connect to email server by static IP.
There is the second Debian server behind firewall without access to the Internet and Java application on it, it can connect ot the first server only.
Can I configure apache such as it listens to port (for example 8081) and redirects it to mail server in order to send email messages on second server?
I tried this:
1) configure second server to send email to the first server using port 8081 (not 25).
2) add new port in /etc/apache2/ports.conf and to add new VirtualHost as described below.
<VirtualHost "*:8081">
#VirtualHost for email server
ProxyRequests On
ProxyPass / http://mail_server_ip:25/
ProxyPassReverse / http://mail_server_ip:25/
<Location />
Order Deny,Allow
Allow from all
</Location>
</VirtualHost>
But nothing meaningful happens, only SocketTimeoutException and javax.mail.MessagingException: Exception reading response.
Is Apache suitable for this task? Is there any way to do it properly?

how to access java web application with ip address without entry the port

I'm using glassfish 4.1 server with port 8080.
my apps can access by hit localhost:8080 or using my_ip_address:8080.
now, I want access my apps only with ip address without entry the port, say my ip is 10.1.2.133, so when I hit 10.1.2.133 it's go to my apps.
how to do it?
I've tried changing the port to 80 and it worked so well. but I still want to use port 8080 instead 80.
I've tried changing the port to 80 and it worked so well. but I still want to use port 8080 instead 80.
Port 80 is the only default port that web browsers understand for the HTTP protocol.
If you want to use a different port (8080) for your server, you must either:
use port 8080 in the URL
set up another server on port 80 that will either redirect requests to port 8080, or reverse proxy the requests to port 8080.
Redirection works by having the server on port 80 send HTTP 3xx responses that tell user's the browser to resend the request to the URL for the port 8080 server.
Reverse proxying works by the server on port 80, sending the request to the port 8080 server itself, and then relaying the response.
You could consider using a reverse proxy like apache httpd or HAProxy in front your application. Configure them to listen to port 80 and redirect requests based on the context to your application at 8080
Take a look at::
https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension
https://github.com/foosel/OctoPrint/wiki/Reverse-proxy-configuration-examples
https://dzone.com/articles/how-to-configure-ha-proxy-as-a-proxy-and-loadbalan
The default Http port is 80, and therefore if your app run at 80 you can omit it, in other cases you must specify the port. Else you must have a Proxy server listen at 80 and re-direct it to the required server based on context( read path ) or some-other information.
You can run another server that points to your server on 8080. Your other server would then be running on port 80 as this is the default port.
Config on Apache would be something like this:
<VirtualHost *:80>
ServerName sample.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://YOUR_IP_HERE:8080/
ProxyPassReverse / http://YOUR_IP_HERE:8080/
RewriteEngine On
<!--other config here-->
</VirtualHost>

SSL sharing between Apache and Apache tomcat with standard port

I have a wordpress application deployed on an Apache server running on port 80 and I also have a java web application deployed on a Tomact server running on port 443.
So basically I have:
http ://mysite.com (Apache)
https: //mysite.com/application (Tomcat)
Now I need to start using my SSL certificate for my website. I know that these processes cannot share the same port. Is there a way to keep both urls without adding an extra port? So both can be accessed via:
https ://mysite.com (Apache)
https ://mysite.com/application (Tomcat)
I'm basing this answer on my configuration with Apache in the front of a Tomcat instance. I don't have your exact configuration but I believe the following should work.
I have an SSL configuration which is where things get forwarded to Tomcat.
I've modified it to be what I think you need:
<VirtualHost _default_:443>
ServerName www.example.com
ProxyPreserveHost on
ProxyPass /application http://localhost:8080/application
ProxyTimeout 360
# rest of the ssl configuration
</VirtualHost>
This should forward everything under /application to Tomcat and keep the rest being served by Apache. Note that this assumes that you have the proxy (a.k.a. mod_proxy) module enabled for your server.
An easy way of doing this is to mount an Nginx server and manage the redirection according to the URL hit:
server {
listen 80;
server_name *.domain.me;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name *.domain.me;
ssl_certificate /path/to/crt;
ssl_certificate_key /path/to/key;
location / {
proxy_pass http://destinationIp:destinationPort;
proxy_set_header Host $host;
}
}

How to use the browser to access tomcat on port 8080?

I have a remote server, and its default port is 8080, but you know the browser default use 80 port to access it, so can not access my tomcat.
How to configure it to access the tomcat's 8080 port?
It is under the windows.
If I use www.example.com:8080 in the browser I can access the server, but if I use www.example.com I can not access it.
EDIT
I use Tomcat + IIS (Server Consolidation), IIS occupy the 80 port.
You cannot access the URL on http://www.example.com because the browser will try to make a TCP connection on port 80 while tomcat is listening to post 8080.
If you want to change the port tomcat is listening to, see this question
Another option is to use a proxy in front of your tomcat server. You can use apache web server or Nginx. They can listen to port 80 and forward your request to the tomcat server on port 8080.
Update
As mentioned in the comments below, as the post80 is already taken, adding reverse proxy cannot help. Because the reverse proxy will not be able to listen to port 80.
It is recommended to see which process is using port 80 and then a proper solution can be implemented.
Update
As IIS is listening on port 80, it is recommended to configure IIS to act as the reverse proxy.
You can follow this link to do so.
You can change tomcat connector port number.
Navigate to /tomcat-root/conf folder. Within you will find the server.xml file.
Open the server.xml and search for connector port and change it.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

Tomcat is running on 8080 port but unable to access remotely using ip address?

I have freshly installed apache-tomcat-7.0.62 on server. It starts without any error but i am unable to access it using : -
http://IP:8080/
here IP is ip address of server.
I have also run following command : -
here is the screenshot
Thanks
Find the server.xml located under confs folder of the catalina(tomcat).
Find out Connector tag which each one indicates for one connector isntance.
If the connector comes with no address attribute(as default), so tomcat will listen for all addresses. If it has address attribute, so just remove it out, or either have another Connector to listen for the related ipv4 address.
<Connector ... address="ip_v4_addr"/>
Check tomcat spec for Connectors here.
Next make sure the port is open and allowed to be invoked by any firewall, also make sure the ip-address is valid(public and reachable), and ISP doesn't block it.
Default port for tomcat(HTTP) is 8080 and 8443 for HTTPS, maybe your ISP doesn't let you workout with non-std ports, or the firewall issue.

Categories

Resources