小编Jor*_*ter的帖子

将 Amazon ELB 后面的所有 http 请求重定向到 https 而不使用 if

目前我有一个 ELB 服务http://www.example.orghttps://www.example.org

我想设置它以便任何指向http://www.example.org 的请求都重定向到https://www.example.org

ELB 将 https 请求作为 http 请求发送,因此使用:

server {
      listen         80;
       server_name    www.example.org;
       rewrite        ^ https://$server_name$request_uri? permanent;
}
Run Code Online (Sandbox Code Playgroud)

将不起作用,因为对https://www.example.org 的请求仍将被发送到 nginx 上的端口 80。

我知道可以将其重写为

server {
      listen         80;
      server_name    www.example.org;
      if ($http_x_forwarded_proto != "https") {
          rewrite ^(.*)$ https://$server_name$1 permanent;
      }
}
Run Code Online (Sandbox Code Playgroud)

但是我读过的所有内容都if应该在 nginx 配置中不惜一切代价避免,这将适用于每个请求。此外,这意味着我必须为健康检查设置一个特殊的单独配置(如此处所述:“……当您位于 ELB 后面时,ELB 充当 HTTPS 端点并且仅向您的服务器发送 HTTP 流量,您破坏了以 HTTP 200 OK 响应响应 ELB 所需的健康检查的能力”)。

我正在考虑将登录放在 web 应用程序的代码中而不是 nginx 配置中(为了这个问题,我们假设它是一个基于 …

http nginx https redirect amazon-elb

27
推荐指数
3
解决办法
3万
查看次数

在 UCC/SAN SSL 证书上列出域

有没有办法列出 SAN/UCC SSL 证书上的所有域(最好在 linux/os x 上使用命令行)?

显然必须有某种方法来提取数据,因为浏览器可以做到这一点。不幸的是,我可以看到列表但不能剪切和粘贴它。

certificate ssl-certificate ucc

17
推荐指数
3
解决办法
2万
查看次数

我如何在同一台服务器上运行两个不同的 Web 服务器?

我知道您不能使用两个不同的服务器进程来侦听相同的端口和 IP,但是如果您为每个进程分配一个单独的 IP 地址,显然这是可能的。是这种情况吗?我正在考虑在同一台服务器上同时运行 ningx 和 Apache(我也欢迎关于这是否是一个好主意的反馈),主要是因为理想情况下我想尝试切换到 nginx 但据说它的 Tomcat 支持不是很好,所以我想我需要为此保留apache。

有没有人做过类似的事情;是否推荐,你如何去做?

nginx httpd apache-2.2

6
推荐指数
1
解决办法
2182
查看次数

nano 在 ssh 上非常慢

最近,通过 ssh 编辑文件时,nano 开始变得很慢。使用语法突出显示编辑大文件时特别慢。

拉线时最明显。有时会在拉线时延迟超过一秒钟(它们最终确实会被拉动,但这通常意味着一旦刷新屏幕,我最终会抓取比预期更多的线)。

我确实喜欢语法突出显示,但如果这意味着我可以再次恢复正常的编辑速度,我愿意放弃它,但这在过去不是问题,我想知道是否有一些配置更改我可以查看以提高响应时间。

linux ssh centos nano

5
推荐指数
1
解决办法
465
查看次数

为 5xx 和 4xx HTTP 状态代码禁用 IIS 7.5 服务器错误响应

有什么方法可以防止 IIS 自动覆盖返回 500 或 400 范围内的状态代码的 Web 应用程序的输出?

举个例子,在 ColdFusion 中,我可以创建以下页面:

<cfheader statuscode="500" statustext="Error">
Sorry, an error occurred.
Run Code Online (Sandbox Code Playgroud)

行为应该是我看到一个页面,上面写着“对不起,发生了错误”。并在标题中看到状态代码为 500。

相反,我看到:

Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Run Code Online (Sandbox Code Playgroud)

在可爱的 IIS 样式中。

我尝试删除 500 个自定义状态页面,但这只是导致:

The page cannot be displayed because an internal server error has occurred.
Run Code Online (Sandbox Code Playgroud)

没有任何可爱的造型。

看起来这种情况发生在任何返回不在 200 或 300 范围内的代码的页面上。

iis custom-errors http-status-code

4
推荐指数
1
解决办法
1万
查看次数

设置 procmail 以忽略自动回复和退回邮件

我正在使用 procmail 接收电子邮件,然后将它们转发到脚本进行处理。有时这甚至意味着生成电子邮件(例如,将消息转发给另一个用户,或回答查询)。

不用说,我对将来自自动回复器或假期回复的电子邮件加载到我的服务器中的兴趣为零,所以我想知道是否有一种简单的方法可以过滤掉这些消息。无论如何,我正在将它们传递给脚本,所以我总是可以在脚本中滚动我自己的过滤器,但我不想重新发明轮子。

我已经知道我应该用Precedence: junk或垃圾邮件Precedence: bulk。我可以像过滤 procmail 中的任何其他标题一样过滤它们吗?

procmail auto-reply

4
推荐指数
1
解决办法
1489
查看次数

将多个目录限制为相同的 IP 范围

假设我在 nginx 配置文件中有以下内容:

location ^~ /foo/ {
    allow 1.2.3.4;
    allow 5.6.7.8;
    allow 9.10.11.12;
    …
    allow 99.100.101.102;
    deny all;
    # rest of directives
}
Run Code Online (Sandbox Code Playgroud)

如果我还想限制对其他几个目录的访问,是否可以这样做而不必创建另一个块并重新列出 IP?我担心的是在将来添加和删除 IP 时进行更改——我不想确保每个块都被更新。

更好的是一个指令,它基本上允许我以某种方式“包含”每个块下的 IP 列表。

configuration nginx

4
推荐指数
1
解决办法
1万
查看次数

编写一个 SVN 钩子来更新已提交代码的副本

我有一个 SVN 存储库,其中存储了许多子项目。现在在我的post-commit我只是遍历机器上所有可能的文件夹并svn update在每个文件夹上运行:

REPOS="$1"
REV="$2"
DIRS=("/path/to/local/copy/firstproject" "/path/to/local/copy/anotherproject" ... "/path/to/local/copy/spam")
LOGNAME=`/usr/bin/whoami`

for DIR in ${DIRS[@]}
do
    cd $DIR
    sudo /usr/bin/svn update --accept=postpone 2>&1 | logger
    logger "$LOGNAME Updated $DIR to revision $REV (from $REPOS) "
done
Run Code Online (Sandbox Code Playgroud)

问题是,当我只是提交其中一个项目的子文件夹时,这很慢而且是多余的。我想知道是否有更好的方法来确定我应该使用哪个 DIRS 并且更新那个。

有没有办法做到这一点?据我所知,无法确定提交了存储库的哪一部分,因此需要更新哪个目录。

是为每个项目创建单独存储库的唯一选择吗?(可能应该从一开始就这样做,如果是这样......)

bash svn

3
推荐指数
1
解决办法
473
查看次数

Windows Server 上的内存使用情况

我们的服务器可用内存总是很低。然而,顶级进程只占用了我们服务器上应该可用的一部分(具有10 GB内存)。

我跑去tasklist获取所有进程的列表,并将它们使用的内存总量加起来。总内存使用量为6GB,大约有1GB的内存“可用”。

除非我遗漏了什么,否则这意味着大约有 3GB 的缺口(10GB 总内存 - 使用了 6 GB - 1 GB“可用”)。

我想知道会发生什么。每隔一段时间,“空闲”内存就会下降到 0,此时我们会遇到速度变慢的情况。

windows-server-2008 memory-usage

3
推荐指数
1
解决办法
2977
查看次数

使用 sudo 检查其他用户的邮件

如何在 Linux (CentOS) 中查看其他用户的邮箱?基本上我想复制

$ mail
Run Code Online (Sandbox Code Playgroud)

命令,但当作为另一个用户 sudo 时。

现在如果我试着去做

$ sudo -u johndoe mail
Run Code Online (Sandbox Code Playgroud)

我得到

/var/spool/mail/jordan: Permission denied
Run Code Online (Sandbox Code Playgroud)

如果我使用同样的东西

$ sudo su johndoe
Run Code Online (Sandbox Code Playgroud)

然后运行mail命令。

email sudo

2
推荐指数
1
解决办法
387
查看次数

我可以创建浏览器识别的链式 SSL 证书吗?

假设我有一个对 example.com 有效的证书(并由已知的 SSL 供应商提供支持)。我希望能够拥有域 test.example.com 的测试版本,该版本也使用 SSL 证书进行保护,但我想这样做而无需支付商业证书(我意识到有“免费" 证书,但几乎所有证书都有时间限制,这对我不起作用)。

显然可以从该证书创建一个链式证书。我想知道的是浏览器是否会认为链接的证书有效。

请注意,example.com 的证书是 SAN 证书,涵盖其他域,如 docs.example.com、example.org 等。

理想情况下,我希望链接的证书也是SAN 证书,并且只提供每个域的测试类似物:test.example.com、test.docs.example.com、test.example.org 等。

我知道测试证书需要一个单独的 IP 地址。

顺便说一下,这是在 Apache 和 CentOS 上。

certificate centos ssl-certificate apache-2.2

1
推荐指数
1
解决办法
182
查看次数

添加脚本以在启动时运行而不触及 rc.local

我想在启动时运行一个脚本,而不是将它作为命令添加到 rc.local,只需将脚本复制到某处即可。

我知道理论上我可以将它放入 /etc/init.d 但这实际上是用于服务,而不是应该在启动时运行的脚本。

我也知道 cron@reboot选项,但我真的更喜欢我只是将脚本复制到目录然后可以忘记它的东西。

基本上,以同样的方式,您可以将文件放入 /etc/cron.daily 或 /etc/logrotate.d 我想知道是否有一个等效的文件夹,您只需将文件放入其中并在启动时运行。

如有必要,我愿意安装一个为您执行此操作的程序,只要它稳定即可。

centos amazon-ec2

1
推荐指数
1
解决办法
1151
查看次数