amazon-web-services – VPC中实例的Amazon AWS通信

前端之家收集整理的这篇文章主要介绍了amazon-web-services – VPC中实例的Amazon AWS通信前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在为我的应用程序在亚马逊上部署服务器.因此我决定使用EC2 ubunutu 14.04 64位t2.micro实例(免费).我想在测试我的应用程序之后扩展硬件.我的目标是建立一个准备在我想要的时候扩展的服务器系统.因此系统设计如下所示:

                              VPC (default)
           ___________________________________________
          |                                           |      
WWW <-----|----> Nginx <----> EXPRESS <------> NEO4J  |
          |___________________________________________|

后来我希望能够将它扩展到这样:

                              VPC (default)
           _________________________________________________
          |                                                 |
          |               –– EXPRESS --           -- NEO4J  |
          |              |             |         |          |   
WWW <-----|----> Nginx -- -- EXPRESS -- -- ELB -- -- NEO4J  |
          |              |             |                    |
          |               -- EXPRESS --                     |
          |_________________________________________________|

但就目前而言,我有第一个系统设计设置.我创建了3个Ubuntu实例.第一个是使用Nginx进行设置,以实现反向代理,gzip压缩和负载平衡.可以通过端口80上的http访问Nginx实例.express实例包含我的节点/ javascript代码,其中服务器在端口3000上运行.最后一个实例运行NEO4J作为我的NOsql数据库.问题现在是,我不能让实例在我的默认VPC中相互通信.或者更确切地说,我首先希望Nginx服务器(端口80)与我的快速服务器(端口3000)进行通信,这些服务器位于不同的t2.micro实例上,就像我上面展示的第一个设计一样.

我在sites-available目录中创建了一个名为“express”的Nginx配置文件,并在启用了站点的目录中创建了一个符号链接,引用了“express”配置文件.

Nginx express配置文件如下所示:

upstream nodes{
        server PRIVATE_IP:3000;
        keepalive 8;
}

server{
        listen *:80;
        location / {
                proxy_pass http://nodes;

                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $host;
                proxy_set_header X-Nginx-Proxy true;
                proxy_set_header Connection "";
                proxy_http_version 1.1;

        }
}

我正在尝试使用PRIVATE_IP与我的快速实例进行通信.

我的Nginx实例的安全组:

enter image description here

我的快递实例的安全组:

enter image description here

我的neo4j实例的安全组:

enter image description here

我可以请求Nginx的默认html(欢迎使用Nginx …)
HTTP:// PUBLIC_DNS_OF_Nginx.
但当我请求反向代理表达http:// PUBLIC_DNS_OF_Nginx / test
我的快递服务器没有回复响应(Nginx没有达到).

但我可以直接到达快递实例并通过获取回复
http://PUBLIC_DNS_OF_EXPRESS:3000/test.

编辑:我做了ssh到Nginx服务器和卷曲http://PRIVATE_DNS_OF_EXPRESS:3000/testhttp://PRIVATE_IP_OF_EXPRESS:3000/test两个都工作.所以我猜到Nginx服务器端有一个错误.它可能是我猜的配置,但仍然需要你的帮助……

您的设置应遵循以下方式

1)在分配给Nginx服务器的安全组上打开80或443端口.
2)在分配给javascript服务器(Express)的安全组上打开自定义TCP端口3000.允许您在端口3000上的流量来自Nginx机器私有IP或分配给Nginx机器的安全组(AWS控制台允许此操作)
3)最后再次打开分配给DB服务器的安全组上的nosql DB端口,并允许来自java脚本(Express)服务器IP或java脚本服务器安全组的流量.

注意:出于安全原因,请避免允许安全组中22端口上的所有流量

猜你在找的Nginx相关文章