如何在EC2上获取Nginx以与https一起使用

时间:2019-02-15 05:33:13

标签: amazon-web-services nginx amazon-ec2 https amazon-route53

简而言之,这就是我在AWS上设置的内容: 我有一个ec2(Windows服务器),我称它为WebAppInstance,它托管一个基于.Net的Web api应用程序。

然后,我有另一个ec2实例(Windows服务器),该实例具有同一Web应用程序的另一个实例,可以称之为WebAppInstanceStaging。

现在,为了实现金丝雀部署,我创建了另一个ec2(ubuntu)来承载nginx,以根据请求标头将请求重定向到WebAppInstance或WebAppInstanceStaging。

我将Nginx放在了一个弯头后面,以利用我在AWS Certificate Manager(ACM)中拥有的ssl证书,因为它不能直接与ec2一起使用。然后,我在向AWS(* .mydomain.com)注册的域中创建了Route 53记录集。

在Route 53中,我创建了一个记录集myapp.mydomain.com。 现在,当我访问http://myapp.mydomain.com时,我可以访问它,但是当我尝试访问http s ://myapp.mydomain.com时,我看到错误消息,说该站点不能已达到(ERR_CONNECTION_REFUSED)。 以下是我的nginx的配置:

upstream staging {
 server myappstaging.somedomain.com:443;
}

upstream prod {
 server myapp.somedomain.com:443;
}

# map to different upstream backends based on header
map $http_x_server_select $pool {
 default "prod";
 staging "staging";
}

   server {
 listen 80;
 server_name <publicIPOfMyNginxEC2> <myapp.mydomain.com>;
 location / {
      proxy_pass https://$pool;

      #standard proxy settings
      proxy_set_header X-Real-IP $remote_addr;
      proxy_redirect off;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 600;
      proxy_send_timeout 600;
      proxy_read_timeout 600;
      send_timeout 600;
 }
}

一天多来尝试解决这个问题。我想念什么?

0 个答案:

没有答案