How can I make Apache Zeppelin/Shiro work on a different port (not 8080)? - port

Apache Zeppelin 0.9.0 preview1 including basic Shiro auth works fine as long zeppelin.server.port specified in conf/zeppelin-site.xml is 8080. However, I would like to use another port (e.g. 9000) for my zeppelin site (experimental localhost setup). When I change the port in zeppelin-site.xml, Shiro auth is no longer possible: the small indicator to the left of the "Login" button on the Zeppelin welcome/login screen is no longer green, but red and login is not executed no matter what credentials I enter.
I did not find any hint on the Shiro website; could anybody kindly give me an idea what could be wrong? Any help is much appreciated.

Problem: Port 9000
In a project, I encountered the same problem. We used the environment variable ZEPPELIN_PORT to set the Zeppelin port to 9000. According to the Apache Zeppelin documentation, this is the same setting as your zeppelin.server.port in zeppelin-site.xml. Using port 9000, for me the login did not work anymore and the login indicator became red instead of green.
Fix
Setting the port to some other value than 9000, for example 9090, fixed this problem.
The Zeppelin documentation of ZEPPELIN_PORT mentions:
Zeppelin server port
Note: Please make sure you're not using the same port with Zeppelin web application development port (default: 9000).
I could not find anything about changing this Zeppelin web application development port. But apparently some check of the Zeppelin login routine renders the login unusable if one tries to set port 9000 as ZEPPELIN_PORT. So just pick another port number and it should work.

Related

Apacche2 display page on another port

I was wondering if a apache2 server, at localhost port 80, can display a page at localhost60080. for some unknown reason, only the hosting computer is able to display the webpage(the kolmafia webview), and I figured that dealing with a apache2 server is easier than the application hosted. basically, can I get help
allowing other computers to view raspberrypi.local:60080
or
have a apache server at port 80 act like the page at 60080
I am sure that
1)same network
2)server works on localhost
3)raspberrypi.local:60080 don't work
4)raspberrypi.local:80 dose work, and displays default apache2 page

Get Visitor IP or a Custom header in Jaeger docker behind docker traefik (v2,x)

we are experimenting with JAEGER as a tracing-tool for our traefik routing environment. We also use an ecapsulated docker network .
The goal is to accumulate requests on our api's per department and also some other monitoring.
We are using traefik 2.8 as a docker service. Also all our services run behind this traefik instance.
We added basic tracing configuration to our .toml file and startet a jaeger-instance, also as docker service. On our websecure endpoint we added forwardedHeaders.insecure = true
Jaeger is working fine, but we only get the docker internal host ip of the service, not the visitor ip from the user accessing a client with the browser or app.
I googled around and I am not sure, but it seems that this is a problem due to our setup and can't be fixed - except by using network="host". But unfortunately thats not an option.
But I want to be sure, so I hope someone here has a tip for us to configure docker/jaeger correctly or knows if it is even possible.
A different tracing tool suggestion (for example like tideways, but more python and wasm and c++ compatible) is also appreciated.
Thanks

apache tomcat on Google cloud Instance

I have installed java and apache tomcat on my Google cloud instance and have started the tomcat but when I try to connect to my instance from my browser on port 8080 or 8443 I cannot connect it. I should see the apache tomcat's welcome page right? Can someone plz help me with this?
You need to configure firewall to allow those ports.
The best option for your use case would be to use Google Cloud Launcher.
https://console.cloud.google.com/launcher/details/click-to-deploy-images/tomcat.
It should give you an external IP with HTTP and HTTPS tomcat ports open 8080.
Just go to the details of your instance and click on edit.
Now in the firewalls section and check Allow HTTP traffic.
Screenshot

how to make sure nginx is running

I've installed rvm, ruby, rails, passenger, and nginx using this tutorial. However, I've installed it all over ssh connecting with myusername#machine-ssh-url. So now I've started nginx using
service nginx start
But I'd like to make sure it's working before moving on. The tutorial states "nginx is now on. You can see the exciting “Welcome to nginx” screen in your browser if you point it toward http://youripaddress/". But I'm not sure how to get the IP address of the machine I've ssh'd into, and I'm pretty sure I need to take more steps to allow an internet connection to be established.
I'm rather new to web development and deployment so I'd appreciate a pointer in the right direction as to the next steps to make my new nginx webserver accessible?
to check if the server is running you can type in your console
$ service nginx status
to know your ip address just type in your console
$ ifconfig
you can also use your hostname instead of the ip address , you can type
$ hostname
yourhostname.com
then try http://yourhostname.com

Can't access site on EC2 instance via public ip

I've been experimenting with EC2 for a couple days and have been banging my head against simply even being able to access the sample site I've hosted. The stack is Rails 3.1.3 with Thin and Nginx.
I've tried several different configurations and finally ended up running the Nginx auto install script, which does return a webpage when I do a curl http://ec2-107-20-143-179.compute-1.amazonaws.com/. However, when I point my browser there, it hangs forever before saying the page cannot be found.
I have assigned an Elastic IP address, and I've enabled HTTP access via port 80.
I don't much experience with the sysadmin side and I'm basically stumped at this point. Any advice would be greatly appreciated.
Did you enable the http port to all ips? That would be done by going to:
EC2 -> Security Group -> Default (or your custome one) -> Inbound
And then Create a new rule for HTTP and as a source, you should assign: 0.0.0.0/0
That should do it.
Think the AWS UI may have been updated but based on Deleteman's answer
Login to EC2 Dashboard
Instances > Instances
Actions dropdown > Networking > Change security groups
You will probably see that you only have launch-wizard-1 allowed which for me only allowed SSH access on port 22
So as Deleteman mentions, you may need to alter your security groups...
Login to EC2 Dashboard
Network and Security > Security Groups
Remove any filters that may be in the search box to show all groups
Personally I edited the default VPC security group as this is a sandbox for me, I imagine you'll want to create a security group for your project
Select the security group checkbox, select actions dropdown and click "edit the inbound rules", I used the following inbound rules just to be sure it was all working
When you revisit Instances > Instances > Description, you should see the security groups and the rules
Once you are happy it's working I would probably replace all traffic with HTTP and HTTPS if that's all that is needed
I was here earlier looking for a solution to a similar problem I was having. It turns out in my case that the EC2 instance also had its own firewall running in addition to the EC2 security group. The command 'system-config-firewall' let me get in to open the ports. Ports 80 (HTTP) and 3306 (MySQL) were not open by default. 22 (SSH) was open. I also had to do 'yum install system-config-firewall'.
To summarize, my solution was:
> yum install system-config-firewall
> system-config-firewall
This answer is for the newbies who have no idea what they are doing with an ec2 instance.
I was having the same problem and tried all the Security Group fixes to no avail.
As it turns out, I needed to turn on my server from the command line.
sudo service httpd start
Sometimes it's dark, not because a fuse blew, but because you didn't flick the switch.
I face the same issue multiple times with the ubuntu EC2 instance and here I am adding all the methods which helped me in fixing the issue in different situations.
Make sure you are accessing the "Public IPv4 DNS" or "Public IPv4 address" or "Elastic IP addresses" from the browser.
Check whether port 80 is open or not.
Here you can see that port 80 is not open in Inbound rules. So let's open port 80 first. For this click on the security tab and you can see the Security groups open this new tab
Now you have to edit inbound rules.
Click at add rule
Then select type HTTP and source AnyWhere and save it.
Similarly, you do HTTPS also.
Check the browser URL if HTTPS is not enabled and if we try to access from browser default it might be HTTPS if so please make it HTTP and try again.
Edit Network ACL. Select the Networking tab and open Subnet ID in a new window.
From Subent Id open Network ACL in the new window
Now edit inbound rules.
For me, It was as simple as just changing the url from https://my-site to http://my-site on my browser. (This solution only applies to people who are still able to SSH onto the ec2 instance but cannot connect via browser)
I was also struggling with same problem had created security group as well, but did not applied to the instance. Just create new rule for http. And apply from right click instance and choose security group and assign it.
Octopus' answer was the correct one for me, except for a Windows machine.
I needed to go to the Windows Firewall, was blocking all traffic out of the VM if it didn't match a rule. Port 80 wasn't enabled in a rule, so I merely had to add one.
Very stupid of me as I forgot to install web server (HTTP server) because of which my ec2 instance public IP was not working. Answering this question as this can also be one of the reason which one should not miss as I did.
You can install either,
nginx:
sudo apt-get install nginx
apache2:
sudo apt-get install apache2
I have encountered a quite similar situation when I tried to run my go app on EC2. If you cannot see an appropriate message or result on your browser even though you:
can get a response well using curl,
finished configuring the Security Group properly
open pen inbound traffic for 80, 443 for the world or for your IP address and
open inbound traffic for 22; and
open inbound traffic for a port that you use (like 8080, 4343, etc.)), and;
run your app to accept a connection from the outside (npm app.js, go run . etc.)
Make sure that you entered http://ec2-..., instead of https://ec2-... on your browser. You cannot connect to the server with https:// even though you open 443 port, unless you already configured ssh certificate. Entering the full address with http protocol, without omitting it, may solve the problem.
I had the same issue, been racking my brain bad since I have no experience with Ubuntu or linux. The answer from Parag fixed it.
Very stupid of me as I forgot to install web server (HTTP server) because of which my ec2 instance public IP was not working. Answering this question as this can also be one of the reason which one should not miss as I did.
You can install either,
nginx:
sudo apt-get install nginx
apache2:
sudo apt-get install apache2
The best way is to edit your security inbound rules. Please refer to below snap.
I know this is a very old thread but faced this issue with many services recently. When you are running any application server like Puma or Unicorn over port example 3000, without having a Load Balancer or Proxy like Nginx frontend it. You have to follow two steps:
Bind the service to 0.0.0.0/3000 and not 127.0.0.1/3000.(This will
leave your service open and accessible by anybody on the internet,
that is were step 2 comes into picture).
In AWS security group now allow port 3000 for 0.0.0.0 if you want it
be access by anybody over the internet or add VPN or your network IP
to allow it only for you and you team.
My problem was the browser.
Chrome works; Firefox DOES NOT work.
Here are the steps that you can follow and when you check both of these, chances are that they will work for sure.
Make sure that you're using http:// in the browser instead of https:// on the IP and amazon IPV4 public DNS (It comes in some form like http://ec2-some-ip-address-here.region.compute.amazonaws.com)
Click on the instance id and scroll down,
go to the security tab,
click on security group it will look like this [![enter image description here][1]][1]
Click on edit inbound rules
Add this
For type- choose HTTP
Source - choose anywhere or anywhere ipv4
and click save and you're done.
Combination of these two should work fine.
While we opened inbounds rules http and https it goes automatically with either one http or https so follow below:
Make sure that you entered http://ec2-..., instead of https://ec2-... on your browser.
For me, I needed to setup ufw and allow it on my EC2insttance. I did so with this command sudo ufw app info "WWW Full"
In my case, it's because I access the public IP with HTTPS, so remmeber to remove 's' in the browser. So stupid!
it may solve by putting http instead of https in browser address
My Windows Ec2 instance was not accessible when I tried to access the public IP from the browser. After checking all the above, I had to update the Windows (Defender) Firewall setting which was blocking the incoming traffic.

Resources