I have my application that needs to serve on port :5000
Here's my dockerfile
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -y nginx
ADD ./nginx.conf /etc/nginx/sites-available/default
RUN service nginx restart
RUN go get github.com/a/mycmd
EXPOSE 5000
And I run
sudo docker run --publish 5000:5000 --rm app /go/bin/mycmd
And here's my nginx config file:
limit_req_zone $binary_remote_addr zone=limit:10m rate=2r/s;
server {
listen 80;
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
server_name 123.13.13.13 example.com;
location / {
proxy_read_timeout 3000s;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:5000;
limit_req zone=limit burst=5 nodelay;
}
}
Then I expect this to redirect traffic from the webserver (port 80) to my app port 5000, but seems like nginx doesn't do the reverse proxy correctly. Traffic do not get directed to my app.
How do I set up nginx and my app in the same container so that I can use it as a reverse proxy?
Thanks!