0

I have three LXC containers (CN1, CN2, CN3). They each run their own Apache instance and have their own networking, so each container has their own private IP.

I set up all containers to listen on the private IP only for Apache. I also set up Nginx to act as a proxy from the host machine to direct any traffic based on the domain requested.

So, I have web1 -> CN1 (10.0.3.2), web2 -> CN2 (10.0.3.3), web3 -> CN3 (10.0.3.4).

When I go to web1, it shows the right page. When I go to web2, it shows the right page. When I go to web3, however, it shows web2's page.

Here's my Nginx server configs:

web2

server {
        server_name web2;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://10.0.3.3:802;
        }
}

web3

server {
        server_name web3;

        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://10.0.3.4:804;
        }
}

Apache's running on web3 and I get get the page when I telnet to it from the host machine itself:

root@SKYNet:/etc/nginx/sites-available# telnet 10.0.3.4 804
Trying 10.0.3.4...
Connected to 10.0.3.4.
Escape character is '^]'.
GET / HTTP/1.1
Host: web3

HTTP/1.1 200 OK
Date: Sun, 26 May 2013 17:00:27 GMT
Server: Apache/2.2.22 (Ubuntu)
Last-Modified: Sun, 26 May 2013 16:27:58 GMT
ETag: "20457c-b1-4dda183dd360e"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html
X-Pad: avoid browser bug

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

I can also ping it from my home machine, and also from external sites that allow you to ping websites. I even had a friend test it and it displayed the same thing (web2's index file instead of its own).

1

I forgot to enable the Nginx config.

Assuming your sites-available configs are stored in /etc/nginx/sites-available/ and Nginx reads from /etc/nginx/sites-enabled/ to see what servers to handle, do this:

ln -s /etc/nginx/sites-available/server_config /etc/nginx/sites-enabled/server_config

Then restart or reload Nginx.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.