我的目标是ssh进入EC2实例并配置服务器重新路由流量以使用" www"如果它没有输入网址。
我通过ssh连接到该站点并进入bitnami.conf文件:
sudo nano /opt/bitnami/apache2/conf/bitnami/bitnami.conf
在bitnami.conf文件中的下面的行:
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/apache2/htdocs"
我添加了以下内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} !www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我保存并退出了该文件。然后我使用以下命令重新启动服务器:
sudo /opt/bitnami/ctlscript.sh restart apache
返回的命令:
Unmonitored apache
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd stopped
Syntax OK
/opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80
Monitored apache
现在我的网站无法再联系到了。
答案 0 :(得分:0)
当我尝试对您进行完全相反的操作时(即仅从www.domain.name重定向到domain.name),我得到了非常相似的结果。 Apache error_log文件中显示的Apache错误为:
Certificate and private key localhost:443:0 from /opt/bitnami/apache2/conf/server.crt and /opt/bitnami/apache2/conf/server.key do not match
AH00016: Configuration Failed
我可以使用openssl实用程序验证此不匹配情况。无论如何,只是这两个键的时间戳不是逻辑上排序的。 让我吃惊的是,使用正确的证书CN的初始配置有效!而且我没有碰这些设置的麻烦。好像已经返回到wwW.example.com(从字面上看)的server.crt被覆盖了。 但是...撤消我的更改并不能解决问题。
出现问题时我使用的方法:
根据注释之一中引用的文档,我使用sudo /opt/bitnami/ctlscript.sh restart
重新启动Apache。
我的解决方案
我编辑了/opt/bitnami/apache2/conf/bitnami/bitnami.conf
,然后停用了指向443端口(包括“监听”行)的VH。我重新启动(实际上是启动的,因为它已经关闭了)Apache2,这次我可以观察到一些线程正在监听端口80。
奇怪的是...尽管似乎没有进程在监听端口443,但我能够请求完美的https://domain.name/!并且已附加了正确的SSL证书。
我的理论是,bitnami可作为超载配置使用:如果被激活,它将取代,否则,将使以上配置获胜。但是我不知道这个“更高级别”的配置实际上在哪里。也许与CloudFront /负载均衡器配置有关? t.b.c。
直到今天,我仍然不知道是什么引起了这样的事实:突然之间,:443配置指向所使用的模拟SSL证书,只是因为我在VH中添加了重定向器,并将其推出...