我正在尝试通过route53和ec2设置一个新的子域,但每当我尝试通过浏览器访问它时都会收到超时错误。设置Amazon安全组以允许通过端口80的所有流量。
我编写了以下vhosts文件,并将其存储在“new.mysite.com.conf”可用的网站下:
<VirtualHost *:80>
ServerName new.mysite.com
RewriteEngine On
#RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
DocumentRoot /var/www/newmysite
<Directory /var/www/newmysite>
DirectoryIndex index.php
AllowOverride All
</Directory>
</VirtualHost>
我已启用此功能;
a2ensite new.mysite.com.conf
service apache2 reload
最后,在route53下,我设置了一个新的A Record,设置为非别名,并指向我正在运行的实例下列出的EC2服务器的公共IP。
我确保在var / www / newmysite / index.php下可以使用测试页面,同时创建备份var / www / newmysite / index.html以进行访问。
子域本身只是暂停。直接点击服务器的公共IP给出默认的apache2“它工作!”页。
有人会对我在这里做错了什么有任何想法吗?
答案 0 :(得分:4)
从HTTP到HTTPS的重定向规则
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我想当你点击new.mysite.com
时,它会重定向到HTTP https://new.mysite.com
,因为没有启用SSL的VirtualHost(443)且443上没有监听器,连接被拒绝。
尝试禁用重定向规则,或者您可以尝试使用自签名证书或配置ELB以使用ACM证书并将Route53域指向ELB。
curl -v -L http://new.mysite.com
* Rebuilt URL to: http://new.mysite.com/
* Trying 10.116.131.69...
* Connected to new.mysite.com (10.116.131.69) port 80 (#0)
> GET / HTTP/1.1
> Host: new.mysite.com
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
* Issue another request to this URL: 'https://new.mysite.com/'
* Found bundle for host new.mysite.com: 0x7ff7a3c0fbc0
* Trying 10.116.131.69...
* connect to 10.116.131.69 port 443 failed: Connection refused
* Failed to connect to new.mysite.com port 443: Connection refused
* Closing connection 1
curl: (7) Failed to connect to new.mysite.com port 443: Connection refused
答案 1 :(得分:1)
就像上一个回答中提到的那样,有一个SSL重定向。 SSL使用未在您的安全组中公开的端口443
。
443
的所有流量。这样可以通过https
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
sudo apt-get install python-certbot-apache
sudo certbot --apache -d new.mysite.com
现在,您的网站应该在https上启动并运行。
PS。在写这个答案时,我注意到你关闭了http
重定向https
,你可能想在网站上启用https后重新启用此功能。这可确保您网站的所有通信都是安全的。