Estou executando o Ubuntu 14.04.3 e o Nginx 1.4.6 no Amazon EC2. Eu estou tentando configurar um proxy reverso para o meu aplicativo na porta 8000, que eu posso ver em execução quando vou para www.mywebsite.com:8000. O proxy reverso deve redirecionar todo o tráfego http para https e, em seguida, servir o aplicativo.
Aqui está minha configuração habilitada para sites:
server {
listen 80;
server_name mywebsite.com
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name mywebsite.com
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/key.key;
keepalive_timeout 60;
ssl_ciphers HIGH:!ADH:!MD5;
ssl_protocols TLSv1;
ssl_prefer_server_ciphers on;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
location / {
proxy_pass http://IPADDRESS:8000;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_read_timeout 60m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Front-End-Https On;
}
}
Primeiro, usei localhost como meu IPAddress, mas depois de ler esta pergunta que sugere usar IP privado do ec2, não o público, eu tentei isso também. Mas sem charuto.
Eu tenho um terminal aberto que é ssh'd em meu aplicativo, para que eu possa ver quando uma solicitação http chegar, o que aconteceu quando visitei mywebsite.com:8000. No entanto, o www.mywebsite.com é uma página em branco que, eventualmente, recebe um tempo de espera, e meu aplicativo mostra que ele não recebeu a solicitação inicial. O Nginx é o único aplicativo que escuta na porta 80 & 443.
Meus registros de erro e acesso também estão vazios. Alguém pode ver o que está acontecendo?
Atualizar
O Nginx estava escutando na porta 80, no entanto, uma tentativa de cURL retornou com a conexão recusada, e meus padrões do iptables foram alterados. O fluxo de volta para o tráfego permitido padrão atingiu o Nginx.
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
É interessante usar o endereço IP privado do Ec2 quando o proxy não era necessário, pois o localhost funcionava bem.
Tags ssl nginx amazon-ec2 reverse-proxy linux