加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:20:51 所属栏目:Nginx 来源:网络整理
导读:我正在为我的应用程序在亚马逊上部署服务器.因此我决定使用EC2 ubunutu 14.04 64位t2.micro实例(免费).我想在测试我的应用程序之后扩展硬件.我的目标是建立一个准备在我想要的时候扩展的服务器系统.因此系统设计如下所示: VPC (default) __________________

我正在为我的应用程序在亚马逊上部署服务器.因此我决定使用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/test和http://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端口上的所有流量

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读