我最近发现我的*.domain.com
不能在 server1.apps.domain.com 上使用,因为它只会“狂野”一个级别,而不是两个级别。
因此,问题是双重的:
- 有没有
*.*.domain.com
证书之类的东西? - 这样的证书是否适用于 server1.apps.domain.com 和 www.domain.com?(例如两个不同的深度级别)
我最近发现我的*.domain.com
不能在 server1.apps.domain.com 上使用,因为它只会“狂野”一个级别,而不是两个级别。
因此,问题是双重的:
*.*.domain.com
证书之类的东西?我遇到了 IIS 无法正常关闭的问题。IOW,当我们执行标准的 NET STOP / NET START 序列时,我们最终会得到一个正在关闭的服务......永远。这会导致我的应用程序部署在尝试重新启动 IIS 时失败。
我以为我会迁移到使用 taskkill。但下面的结果让我感到困惑。taskkill 报告成功终止,但进程仍然存在。
我如何让 taskkill 做需要的事情?
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
C:\Users\Administrator>tasklist /svc|find "W3SVC"
svchost.exe 1456 W3SVC, WAS
C:\Users\Administrator>taskkill /PID 1456 /F
SUCCESS: The process with PID 1456 has been terminated.
C:\Users\Administrator>tasklist /svc|find "W3SVC"
svchost.exe 1456 W3SVC, WAS
C:\Users\Administrator>taskkill /PID 1456 /F
ERROR: The process with PID 1456 could not be terminated.
Reason: There is no running instance of the task.
C:\Users\Administrator>tasklist /svc|find "W3SVC"
svchost.exe 1456 W3SVC, WAS
C:\Users\Administrator>
在 Windows Server 2016 上
我有一个简单的 python web 服务器(在烧瓶中)。它工作得很好,并在端口 80 上侦听(或我配置它侦听的任何内容)。
我需要通过 SSL 提供服务。
我有一个很好的证书,并将其导入到计算机/个人证书存储中。
然后我跑了:
netsh http add sslcert ipport=0.0.0.0:443 certhash=8caef2be185a0c94d################ appid="{7E46BD40-39C6-4813-B414-019AD3332421}"
netsh http add urlacl url=https://+:443/ user=Everyone
命令运行良好。我在 443 上运行烧瓶网络服务器,但它的服务未加密。例如
https://host/ // fails, because the server is serving plain text
http://host:443 // works, because the traffic ain't ssl-ified
如何解决?
明确一点:如何在不接触烧瓶代码的情况下解决(我们不想将 SSL 证书放在文件系统上,这是不安全的)。我相信 netsh 可用于在任意 Web 服务器前终止 SSL?
我们有一个 Hyper-V 主机,并且正在将虚拟机迁移到 VMWare ESX。
VMWare Converter似乎是唯一可用的工具。(我认为 Hyper-V 可以保存/导出到 OVF,但我似乎弄错了。)
问题是:VMWare Converter 能否在磁盘上进行静态转换,从 Hyper-V 到 OVF 或 ESX 格式,无需连接到 ESX,还是需要登录到 ESX 才能进行转换?
(我们需要分解这个过程,因为在我们的环境中对 ESX/VCenter/VSphere 的访问受到高度限制。)
使用 RPM 从 logstash 5.4.1 更新到 5.6.4
一切都很顺利,但是命令:
yum localinstall logstash-5.6.4.rpm
导致我的 /etc/logstash/logstash.yml 被 rpm 中的配置覆盖。
我不记得以前见过 RPM 这样做。
RPM 会备份到先前 yml 文件的某个神奇位置吗?
我在 CentOS 6.8 上设置一个 750GB 弹性搜索节点(用于 logstash)
我应该将其设置为单个大磁盘(引导和一个分区中的所有内容)吗?
或者我应该这样做:
/boot # small, 15GB or so
/ everything else #750GB
或者 ?
我们有一个超级健谈 (ajax) 的 html 5 应用程序(它的构造类似于 gmail,大量的 js)。
QUIC 的阅读听起来很有趣。 https://en.wikipedia.org/wiki/QUIC
IIS(或任何 .NET 托管引擎)能否支持 QUIC?
如果 IIS/Win 做不到,我可以在 IIS 前面的 haproxy 实例(在 CentOS 上)中做吗?
这是一个redis 2.8.13 在centos 上的生产实例。
在我们的 redis.conf 中,我们有这个:
rename-command CONFIG ""
现在......我们要运行延迟监视器,这需要我们使用 CONFIG 命令。
我们有 root 访问权限,这是我们自己的专用服务器。是否可以在不重新启动redis的情况下修改conf文件并重新加载配置?(这是一个生产系统)
我有一个在 cmd 行中运行良好的 powershell 脚本,但在从任务调度程序运行时会出现很多问题。
所以我需要查看所有命令的所有控制台输出。
该脚本执行许多外部命令(net use、robocopy 等)。这些命令的输出是我最需要的。
我们不想检测每个命令,因为它很难看,而且我们需要交互地运行它(看看发生了什么)。
我尝试了带有-Verbose的powershell“Start-Transcript”,但没有任何命令记录到脚本文件中。即使我们遵循了 powershell 团队中的一个人的这个指令:| Out-Default(例如 ipconfig.exe | Out-Default),我们仍然看不到脚本中的输出。
接下来是什么?
我们将使用 robocopy 将一堆加密文件同步到 azure 文件共享。
但是我们需要在防火墙上打开什么来让备份服务器访问一个 azure 存储文件共享?(这将是从 Win2012-R2 到 azure 存储的 SMB3 连接)
a) 打开端口 445
b) 但是什么 IP 地址?
我们的存储帐户显示区域:美国东部、美国西部
我找到了这个页面: https ://www.microsoft.com/en-us/download/confirmation.aspx?id=41653
它给出了一个覆盖这两个区域的范围(50-100)的大列表。
我必须将所有这些范围添加到我们的防火墙,还是有更有针对性的方法来发现要访问的 IP 范围:
.file.core.windows.net
?
(编辑以匹配答案作者的理解 - 此处发布的新的、新鲜的、干净的问题:Active Directory + Google Authenticator - Windows Server 中的本机支持?)
迄今为止完成的研究
有一篇关于如何将 google 身份验证器与 Active Directory 联合服务 (AD FS) 一起使用的 technet 文章:https ://blogs.technet.microsoft.com/cloudpfe/2014/10/26/using-time-based-one-time -passwords-for-multi-factor-authentication-in-ad-fs-3-0/
奇怪的是,它似乎是一个开发项目,需要一些代码和它自己的 SQL DB。
我们在这里并不是专门谈论 AD FS。我们正在寻找 2FA,支持 Google Authenticator RFC,内置于 AD。
Azure 备份正是我们正在寻找的。
执行数据移动的工具是 Azure 备份实用程序 ( https://www.microsoft.com/en-us/download/details.aspx?id=49170 )
我们的第一个观察是它需要 SQL Server(这是一个沉重的要求!)。
但是当它需要广告时,音乐停止了。
我们如何在没有 AD 的情况下朝着这个方向前进?
CentOS 上的 ES 1.7.x
我们的生产 ES 集群严重下降。我们丢失了整个索引。事实证明,这已经在日志中记录了一天或更长时间:
New used memory from field ### would be larger than configured breaker
好的。
我可以点击 ES 上的哪个 url 来查看问题是否正在发生?(日志监控不是我们监控机制的一部分,但访问 ES url 对我们来说很容易。)
我们现在使用集群健康 url,所以我们看到集群变成黄色/红色,但是(到目前为止),我们还没有看到如何从外部看到问题的到来(所以我们被打败了)。
根据经验,我是否正确理解 nginx 不支持 mime 类型 text/* ?
配置是:
gzip_types
text/css
text/*
并且 javascript 没有被压缩。
去了
gzip_types
text/css
text/*
text/javascript
现在 javascript 被压缩了……(所以我应该删除 text/* 对吗?)
Linux 上的 nginx 1.7.9
问题:
使用 nginx 时,Web 服务器将所有请求视为来自 http,即使它们是通过 https 进入的。
使用 IIS 请求跟踪,我们看到请求是这样进来的,即使外部(来自浏览器)请求是https://myapp.com:443/appdir/
:
RequestURL="http://myapp.com:80/appdir/"
但是在我们的硬件负载均衡器(我们正试图逐步淘汰)上,它正确地出现在:
RequestURL="https://myapp.com:443/appdir/"
该应用程序需要看到https,这取决于它。(它试图强制连接安全。)
我们知道使用 X-Forwarded-Proto 等来告诉应用程序请求是通过 ssl 进来的,但是应用程序的一部分是围绕请求本身构建的,我们可能无法修改它。
硬件负载均衡器可以“全部完成”——终止 ssl,并将“假装”请求发送回应用程序(通过端口 80),这些请求似乎是对 https 的请求。
如何让 nginx 将完整的、未更改的请求 url 传递回服务器?
配置:
http {
upstream sandbox_site {
least_conn;
# we pipe to back end on port 80 only, so that nginx handles all ssl
server 192.168.2.16:80 max_fails=1 fail_timeout=60s; # sbox3-site is .2.16
}
server {
# This is sandbox.myapp.com block **************************************
listen 192.168.2.27:80;
server_name sandbox.myapp.com;
location / {
proxy_pass http://sandbox_site;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
# This is SSL version of sandbox.myapp.com block **************************************
listen 192.168.2.27:443 ssl;
server_name sandbox.myapp.com;
ssl_certificate new-sandbox-myapp-com.cer;
ssl_certificate_key new-sandbox-myapp-com.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://sandbox_site;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
寻找在 Docker 容器中的 IIS 中打包 asp.net 应用程序的路径。
到目前为止,我们看到的文档/示例展示了如何在 docker 容器中打包 windows 应用程序(以及扩展的 windows 服务):
从那里,我们可以看到如何将 apache 服务器与我们的应用程序一起打包到 docker 容器中。
但是我们没有看到将 IIS 实例(其中安装了我们的应用程序)嵌入到 docker 容器中的文档/愿景。
在哪里可以找到这样的文档/示例?
(我们在 IIS 8.5 / .NET 4.51 上有一个 asp.net 应用程序)
我们使用 nginx 对一对 websocket 服务器进行负载平衡,并且遇到了问题。
一旦将流量实际连接到 Web 套接字服务器,它就不会正常退出或关闭。例如 service nginx stop 或 nginx -s quit 或 nginx -s reload 会导致一个或多个工作进程永远报告“工作进程正在关闭”。
流程是:
我们在 centos v6 上运行 nginx
我们的编译选项和高级配置的详细信息:
[root@nginx1 nginx]# nginx -V
nginx version: nginx/1.7.9
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module
--with-http_ssl_module --add-module=/opt/nginx_upstream_check_module-master/
我们的配置如下。我们如何去追这个呢?现在我们被迫硬杀/重启 nginx 来更新配置。
worker_processes 2;
error_log logs/error.log;
events {
worker_connections 20000;
}
worker_rlimit_nofile 40000;
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream websocketserver {
server 192.168.2.16:3842 max_fails=1 fail_timeout=60s;
server 192.168.2.19:3842 max_fails=1 fail_timeout=60s;
}
server {
listen 192.168.2.28:80;
location / {
proxy_pass http://websocketserver;
proxy_next_upstream error timeout invalid_header http_500;
proxy_connect_timeout 2;
proxy_read_timeout 86400;
# WebSocket support (nginx 1.4)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
deny all;
return 404;
}
}
}
我们在 centos 6 上使用 nginx,以及此处的 init.d 脚本:https ://gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx
这一切都“有效”
Nginx 运行等。
但是,在某些情况下,通过 ssh 使用此 init.d 脚本后,该脚本(无论是通过 ssh 还是在控制台上以 root 身份)似乎都只能工作。
例如
service nginx stop
[OK]
但是 nginx 还在运行....
service nginx restart
[OK]
但是该服务以相同的 pid 运行,并且从未退出。
重新启动盒子似乎是正确让服务停止和重新启动的唯一方法。
完整的步骤和问题如下所示。
我该如何解决这个问题?
在这里,我以 sysadmin 身份登录,然后 su up 运行命令:
在这里,我只是以 root 身份登录。同样的问题:
我们主要(但不完全)赢得服务器。
最好是,我们可以启动操作系统并对它做很少或不做任何事情以使其准备好接收命令(我们知道我们可能需要创建一个带有代理或 ssh 服务器的基本映像)。
需要能够安装 mongodb、基于 java 的应用程序、iis 配置等。
哪个工具具有最强的 Windows 支持/社区,以及(如果可能)最轻的 init 占用空间?
操作答案:Powershell DSC。
这不是完整的故事(它并没有做厨师/木偶/等人所做的所有事情),但它满足了很多需求,效果很好,并且在 win 8.1/2012-R2/10 中开箱即用。我们对此非常满意。