nginx http – > httpsredirect添加额外的逗号与主机名称

我有一个服务器,应该始终服务于https,我试图让nginx自动从httpredirect到https。 在这里阅读关于这个主题的其他问题,我写了下面的configuration:

server { listen 80; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name *.amazonaws.com *.mydomain.com; ssl_certificate /home/ubuntu/mysite/ssl.cert; ssl_certificate_key /home/ubuntu/mysite/ssl.key; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { autoindex on; alias /home/ubuntu/mysite/__staticfiles; } location / { include proxy_params; proxy_pass http://unix:/home/ubuntu/mysite/mysite.sock; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

注意* .amazonaws.com server_name是这样我就可以使用亚马逊公共DNS,例如“ec2-12-345-678-9.compute-1.amazonaws.com”

现在是这样的问题:当我input任何与亚马逊DNS的http地址,例如:

 http://ec2-12-345-678-9.compute-1.amazonaws.com/admin 

我正在redirect到这个:

 https://%2A.amazonaws.com/admin 

如果我去https:

 https://ec2-12-34-567-8.compute-1.amazonaws.com/admin 

我在这里:

 https://ec2-12-34-567-8.compute-1.amazonaws.com%2Cec2-12-34-567-8.compute-1.amazonaws.com/admin/ 

我究竟做错了什么?

谢谢,