有时在安装更新后,服务器机器会说
*** System restart required ***
.
我们当然遵守。
这真的是这样吗?我无法想象这已经是最佳实践。因为您不想重新启动服务器。您的服务器上有实时流量。
运行 Ubuntu 14.04。sudo apt-get upgrade
我们使用和安装更新sudo apt-get dist-upgrade
。
需要指导。
谢谢!
有时在安装更新后,服务器机器会说
*** System restart required ***
.
我们当然遵守。
这真的是这样吗?我无法想象这已经是最佳实践。因为您不想重新启动服务器。您的服务器上有实时流量。
运行 Ubuntu 14.04。sudo apt-get upgrade
我们使用和安装更新sudo apt-get dist-upgrade
。
需要指导。
谢谢!
我正在运行Let's Encrypt 的SSL 证书。我已经将它们安装在运行 Apache 的 Ubuntu 机器上。设置工作正常,我可以启动网站,查看绿色挂锁,甚至在 SSL Labs 上获得 A+。
问题是当我执行apachectl configtest时,服务器会返回一个文件未找到错误:
SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
但sudo service apache2 restart
工作得很好。
我在Let's Encrypt Community遇到了这个问题,但问题尚未解决。
sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem
有效,返回有效的证书详细信息。
sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
不起作用并返回以下错误:
Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem
139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r')
139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
ubable to load certificate
关于为什么我在apachectl configtest和openssl上出现错误的任何想法?
多谢你们!
我们的本地网络中运行着 DBF 文件。它在运行 Samba 共享的 Ubuntu 服务器上。DBF 文件供我们在 xBase 上运行的内部系统使用。
现在我们将一切都转移到 Amazon Web Services。我想知道AWS 是否有可用于运行 DBF 文件的基础设施?我们可以在哪里存储数据并仍然从我们的 xBase 系统访问它。我正在研究 DynamoDB,但我不知道它是否会按需要工作。或者它有运行类似 Samba 的共享的特殊基础设施吗?
我的最后一个选择可能是在 EC2 实例中运行 Samba 服务器。
请有任何建议。
谢谢。
我在 Ubuntu 上运行 Apache 2.4.20,并且配置了 SSL。我有一个SAN SSL 证书,并且www.example.com和www2.example.com共享同一个证书。
当我包含以下内容时,我收到421 Misdirected Request错误:
Protocols h2 h2c http/1.1
H2Upgrade on
H2Direct
H2WindowSize 128000
如果我删除它们,网站会正常运行。
如果在同一浏览器上打开www.example.com和www2.example.com,我会收到错误消息。如果我先访问www.example.com,它将正确加载。当我从该 SAN SSL 证书加载第二个站点时出现错误,例如www2.example.com。我先去哪个网站并不重要。它总是在第二个站点上以421 Misdirected Request响应。
我使用 HTTP/2 指令有什么问题?(顺便说一下,它们在 VirtualHost 中)
还是 HTTP/2 和 SAN SSL 实现存在问题?
如果重要的话,www.example.com 和 www2.example.com 都在 AWS 中托管的同一台服务器上。
谢谢。
编辑:
我还尝试了以下设置,结果相同。
Protocols h2 http/1.1
H2Direct
H2WindowSize 128000
在 SSL 配置中
<IfModule mod_ssl.c>
SSLRandomSeed startup builtin
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect builtin
SSLRandomSeed connect file:/dev/urandom 512
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog exec:/usr/share/apache2/ask-for-passphrase
SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLOpenSSLConfCmd DHParameters "/path/dhparams.pem"
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
SSLHonorCipherOrder on
SSLCompression Off
SSLSessionTickets Off
SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ssl_stapling(32768)
SSLProtocol all -SSLv3
SSLInsecureRenegotiation Off
SSLStrictSNIVHostCheck Off
</IfModule>
在虚拟主机中
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /path/path
Protocols h2 http/1.1
H2Direct on
H2WindowSize 128000
SSLEngine on
SSLCACertificateFile /path/cert.crt
SSLCertificateFile /path/cert.crt
SSLCertificateKeyFile /path/key.key
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
<Directory /path/path>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
</IfModule>
我最初的问题的后续行动:来自 AWS CloudFront 和 S3 Origin 的文件没有缓存控制标头
我使用 AWS CloudFront 以 AWS S3 作为源来提供静态文件。我尝试使用 AWS Web 控制台为我的对象设置 Cache-Control 标头,如我原始问题(上面的链接)中的答案中所述。当我使用 AWS S3 链接访问文件时,我已经可以看到我添加的标题: Cache-Control: public, max-age=31536000。
问题是浏览器不尊重标题。当我重新加载/刷新同一个链接时,我得到一个304 - Not Modified响应而不是200(缓存)响应。
我还尝试了值max-age=300(没有Public),还尝试了" "中的值,但我总是得到 304 响应。我还尝试从 S3添加Expires标头,但结果相同。
如何让浏览器尊重缓存标头?我想利用浏览器缓存并节省使用 AWS 的成本。
附加说明:我的 S3 存储桶未设置为静态网站托管。以防万一这与此有关。
编辑:以下是实时 HTTP 标头
https://cdn.example.com/path/logo.png
GET /path/logo.png HTTP/1.1
Host: cdn.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://www.example.com/
Connection: keep-alive
If-Modified-Since: Tue, 12 Apr 2016 10:29:24 GMT
If-None-Match: "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
HTTP/1.1 304 Not Modified
Connection: keep-alive
Date: Sat, 16 Apr 2016 09:33:08 GMT
Etag: "xxxxxxxxxxxxxxxxxxxxxxx"
Server: AmazonS3
Age: 67885
X-Cache: Hit from cloudfront
Via: 1.1 xxxxxxxxxxxxxxx.cloudfront.net (CloudFront)
X-Amz-Cf-Id: xxxxxxxxxxxxxxxxxxxxxxxxxxxx==
编辑:如果我重新加载,我会收到200响应,如果我在地址栏 URL 上按 Enter,我会收到304 Not Modified 。此外,同一页面加载中的 Google 资产会以200(来自缓存)而不是 304 响应。
当前检测文件已被缓存的在线测试。在http://www.webpagetest.org/和http://tools.pingdom.com/上进行了测试。也与谷歌页面速度。我认为将文件分发到边缘位置需要时间。这很奇怪,因为我每次编辑都会更改文件名,以便立即发生更改。但就缓存而言,将缓存分发到边缘位置可能需要时间。还在做一些更多的测试。
我们刚刚迁移到亚马逊 AWS。我们目前有一个运行良好的 EC2 实例。它在前端运行 Nginx,在后端运行 Apache。这也运行良好。所有站点均已正确启动,并包含从 EC2 提供的文件的 Cache-Control 标头。
问题在于我们放置在通过CloudFront CDN访问的Amazon S3中的所有静态文件。我们可以正常访问文件(CORS 没有问题),但显然CloudFront 不提供带有 Cache-Control 标头的文件。我们想利用浏览器缓存。
在我看来,EC2 实例在这里不起作用,因为静态文件直接由 S3+CloudFront 提供服务,请求不会转到 EC2 中的 Web 服务器。
我完全迷路了。
问题:1)在这种情况下如何设置缓存控制?2)是否可以设置缓存控制?来自 S3 还是 CloudFront?
注意:我在 Google 中找到了一些页面,您可以在其中为单个对象设置 S3 中的 Header。这真的不是一种特别有效的方法,因为在我的例子中,我们正在谈论几个对象。
谢谢!