Query asked by user
I have configured Logstash 1.5.2 to consume http input on a linux machine.
This is my logstash input configuration:
input {
http {
host => "10.x.x.120"
port => "8500"
}
}
I can send data to logstash by using curl -XPOST from the linux machine.
But when I make a $http.post(url, postData); request from my angularJS application I get the following error:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading
the remote resource
I have hosted my application on the same linux machine using nginx within a docker container.
I have tried to configure nginx to allow CORS by adding the following lines to the nginx.conf:
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
But still the error persists.
Also when I hit http://10.x.x.120:8500 from my browser address bar I get ‘ok’.
Any help is highly appreciated.
Thanks.
Answer we found from sources
I was able to get this running by using reverse-proxy setting for nginx.
I modified my URL to be as follows:
http://10.x.x.120/logs
And then made the following changes to the nginx.conf file:
location^~ /logs {
proxy_pass http://10.x.x.120:8500;
}
Now when ever my application makes an HTTP POST request to http://10.x.x.120:8500/logs it is redirected to http://10.x.x.120:8500.
Voila!! Logstash gets the data because it is listening to port 8500.
Answered By – JSNinja
This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0