Thanks Max and Francis. <br>I will try. <br><br>George.Alex. <br><br><div class="gmail_quote">On Sun, Feb 5, 2012 at 7:17 PM, Francis Daly <span dir="ltr"><<a href="mailto:francis@daoine.org">francis@daoine.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Sun, Feb 05, 2012 at 01:02:12PM +0800, Geoge.Q wrote:<br>
<br>
</div>Hi there,<br>
<br>
I'm afraid I'm not able to understand the topology. So I'll make some<br>
guesses, and perhaps you can say where I have gone wrong.<br>
<div class="im"><br>
>  2. How to access<br>
><br>
>     (1)  Access <a href="http://2.2.2.2:8000" target="_blank">http://2.2.2.2:8000</a> from outside to access web1;<br>
>           Access <a href="http://2.2.2.2:8001" target="_blank">http://2.2.2.2:8001</a> from outside to access web2;<br>
>     (2) NAT device translated 2.2.2.2 to different internal IP address<br>
> according to port;<br>
>              <a href="http://2.2.2.2:8000" target="_blank">http://2.2.2.2:8000</a>  =====NAT===> <a href="http://1.1.1.1" target="_blank">http://1.1.1.1</a>(web1);<br>
>              <a href="http://2.2.2.2:8001" target="_blank">http://2.2.2.2:8001</a>  =====NAT===> <a href="http://1.1.1.2" target="_blank">http://1.1.1.2</a>(web2);<br>
>     (3)  NGINX act as reverse proxy;<br>
<br>
</div>So 2.2.2.2 is the address of the NAT device, and it sends any inbound<br>
traffic to port 8000, to internal web1:80; and it sends any inbound<br>
traffic to port 8001, to internal web2:80?<br>
<br>
That should just work, with no need for nginx anywhere.<br>
<br>
So that's presumably not what you want.<br>
<br>
Perhaps you have nginx on some other internal server, that the NAT device<br>
sends the traffic to? Or perhaps nginx is running on the NAT device,<br>
so NAT isn't needed at all?<br>
<div class="im"><br>
> 3. issue<br>
>    We configure nginx as reverse proxy, but it always proxy<br>
> (<a href="http://1.1.1.1and" target="_blank">http://1.1.1.1and</a> http:/<br>
> 1.1.1.2) to <a href="http://1.1.1.1" target="_blank">http://1.1.1.1</a>;<br>
><br>
>    nginx configure is as following<br>
><br>
>      server {<br>
>            listen 80;<br>
<br>
</div>That is the port on the nginx server that nginx listens to, and is<br>
the port that the traffic to nginx must be sent to. I suspect that it<br>
should be 8000 or 8001; but when the network topology is clear, it will<br>
be clear what that will be.<br>
<div class="im"><br>
>            server_name 2.2.2.2; // (try <a href="http://2.2.2.2:8000" target="_blank">2.2.2.2:8000</a>, it failed)<br>
<br>
</div>That is the name in the Host: header that the client sends. If more than<br>
one nginx server{} listens on the same ip:port, it is used to choose<br>
which server{} is used.<br>
<div class="im"><br>
>        server {<br>
>            listen 80;<br>
>            server_name 2.2.2.2; # (try <a href="http://2.2.2.2:8000" target="_blank">2.2.2.2:8000</a>, it failed)<br>
<br>
</div>This is the same listen/server_name as the first one, so will never match.<br>
<div class="im"><br>
> 4. I try to change the configuration, it is failed.<br>
><br>
>     My configuration is good ? Is the topology supported?<br>
<br>
</div>Because of listen/server_name, your second server{} block will never be<br>
used, so no traffic will go to web2.<br>
<br>
So: have nginx listening on two different ports, or on two different<br>
addresses, or use different Host: names in the requests.<br>
<br>
(But since I don't see where nginx fits in to the topology in the first<br>
place, I guess I must have missed something.)<br>
<span class="HOEnZb"><font color="#888888"><br>
        f<br>
--<br>
Francis Daly        <a href="mailto:francis@daoine.org">francis@daoine.org</a><br>
</font></span></blockquote></div><br>