我首先在 StackOverflow 上问了这个问题,但似乎这个网站更合适。
我正在设置一个 Web 应用程序环境来运行 Java 应用程序。环境应该是:
我启动了 EC2 实例并安装了 java,然后按照本指南设置 Tomcat: https: //www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804
systemctl现在,当尝试启动/重新启动 Tomcat 服务时,问题就会出现。这是我在检查 systemctl 日志时看到的内容:
12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]: tomcat.service: 服务延迟时间结束,计划重新启动。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]: tomcat.service: 计划重启作业,重启计数器为 5。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]:已停止 Apache Tomcat Web 应用程序容器。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]:启动 Apache Tomcat Web 应用程序容器... 12 月 19 日 13:35:25 ip-10-165-10-74startup.sh[1705]:Tomcat 已启动。 12 月 19 日 13:35:25 …
我有一个当前占用 100Gb 的 ZFS 池。我将磁盘大小增加到 150Gb,但似乎无法让 ZFS 使用整个磁盘。
我有一个完全相同的问题,昨天与另一台服务器,并有有一定的混合物zpool set autoexpand=on,zpool export|import,zpool online -e和重启让我来解决它。但是无论我做什么,在当前服务器中都不起作用
有问题的设备是 sdb,您可以从下面的 lsblk 中看到,可用 150Gb 中的分区只有 100Gb。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 150G 0 disk
??sdb1 8:17 0 100G 0 part
??sdb9 8:25 0 8M 0 part
root@http-server-2:/home# parted -l
Model: Google PersistentDisk (scsi)
Disk /dev/sdb: 161GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name …Run Code Online (Sandbox Code Playgroud) 我们最近通过了 SOCII 1 类审核,并且正在通过 2 类审核。在我们的一些生产服务器上,我想推送一些应用程序的更新版本,我看到人们经常提到remirepo。我不想做的是危及我们对任何事情的遵守。我花了一段时间才让他们允许epel。值得追求remi吗?
我正在开发一个网络管理产品。我们将产品作为虚拟机交付给客户,他们将其安装在网络中的虚拟机管理程序上。这些虚拟机在客户网络中获得静态私有 IP 地址。他们监视客户的设备,并运行显示网络状态的 (Apache/Django) Web 服务器。客户通过私有 IP 访问该站点,而我们直接使用 TeamViewer(在发货前安装)访问虚拟机,因此不涉及公共 IP 或域名。我们非常希望在我们的虚拟机上提供 SSL 证书,以便客户不再看到我们的网站不安全的通知(当然,这样我们的网站就不再不安全)。最好,客户不必添加对新 CA 的信任或向其浏览器添加安全例外。
最有效且最具成本效益的方法是什么?我尝试过LetsEncrypt,但他们只支持域名证书,不支持IP。
全新且完全打补丁的 Ubuntu 18.04 实例(在 Linode VPS 上),带有从官方 Docker 存储库安装的 Docker 18.09.0(构建 4d60db4)。
IPv4 网络运行良好,无论是在容器之间还是内部到外部(一旦我设置了net.ipv4.ip_forward=1)。
然而,IPv6 甚至不会在容器之间进行通信,更不用说在外部进行通信了。
我尝试了很多东西,但发现本指南是最好的(除了它不起作用:-))
因此我有...
更新/etc/docker/daemon.json了以下内容并重新启动:
{
“ipv6”: true,
“fixed-cidr-v6”: “2001:db8:1::/64”
}
Run Code Online (Sandbox Code Playgroud)
检查了 MTU。
运行两个 docker 容器来测试这个:
sudo docker run -itd ajeetraina/ubuntu-iproute bash
sudo docker run -itd ajeetraina/centos-iproute bash
Run Code Online (Sandbox Code Playgroud)
两者都在内部显示出完美的连接性:
$ sudo docker exec -it b1cbb63b4e88 ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:acff:fe11:3 prefixlen 64 scopeid 0x20<link>
inet6 2001:db8:1::242:ac11:3 prefixlen 64 scopeid 0x0<global>
ether …Run Code Online (Sandbox Code Playgroud) 我们正在测试我们的 Java 应用程序,它被 OOM Killer 杀死,日志如下。
几点:这是一个java web 应用程序。它以 190G 的堆运行。服务器是一个总内存240G的EC2实例。我们正在 JDK 11 中尝试新的实验性 ZGC。当时应用程序没有负载,在类似 prod 的测试环境中运行。应用程序确实有一些由计划触发的处理,可能是内存和 CPU 密集型的,但这些处理经常运行并且没有失败。
应用程序代码与我们在生产中的代码没有显着变化。我们也成功地对此进行了负载测试,包括 12 小时的浸泡测试,没有问题。
现在到 OOM-Killer 日志。完整日志如下,但我觉得很奇怪的一件事是这一行:
Dec 18 23:24:59 ip-10-0-3-36 kernel: [ 775.571217] Killed process 4973 (java) total-vm:17181703924kB, anon-rss:9740kB, file-rss:0kB, shmem-rss:0kB
Run Code Online (Sandbox Code Playgroud)
虚拟机总大小约为 17 TB。这对我来说很奇怪,因为我们的应用程序甚至不会尝试正常请求这个。我怀疑我们可能遇到了一些 ZGC 或 ZGC+我们的代码错误,但我想确保我读对了。
我非常感谢任何帮助,完整的日志供参考:
Dec 18 23:24:59 ip-10-0-3-36 kernel: [ 775.158902] java invoked oom-killer: gfp_mask=0x14200ca(GFP_HIGHUSER_MOVABLE), nodemask=(null), order=0, oom_score_adj=0
Dec 18 23:24:59 ip-10-0-3-36 kernel: [ 775.166556] java cpuset=/ mems_allowed=0
Dec 18 23:24:59 ip-10-0-3-36 kernel: [ 775.168975] CPU: 15 …Run Code Online (Sandbox Code Playgroud) 我无法通过 SSH 连接到 Google Cloud 服务上的实例。
我不太熟悉虚拟机管理和故障排除,但已经尝试了我所知道的一切,谷歌可以提供给我,包括:
无论我尝试什么,唯一的结果是一个加载符号,后跟以下内容:
到项目元数据的密钥传输花费了异常长的时间。传输到实例元数据可能会更快,但只会将密钥传输到该虚拟机。如果您希望从此虚拟机通过 SSH 连接到其他虚拟机,则需要相应地传输密钥。
我不能这样做,因为我没有 GCloud 用于 SSH 进入实例的私钥,并且使用 PuTTY 根本不起作用,因为我给服务器的任何公钥都不起作用全部。
ssh virtual-machines ssh-keys google-compute-engine google-cloud-platform
我正在尝试配置 NGINX/OpenResty 以根据 SOAP 请求上存在的字符串将 SOAP 调用代理到 2 个不同的服务器。
我能做什么:我能够根据 SOAP 客户端调用的路径将请求代理到 2 个不同的服务器:
location /pathA {
proxy_pass http://www.ServerA.com/PathA/;
}
location /pathB {
proxy_pass http://www.ServerB.com/PathB/;
}
Run Code Online (Sandbox Code Playgroud)
我不能做什么:
我无法根据请求的内容分离流量。我认为主要原因是我无法正确组装LUA脚本来提取信息并随后使用它来代理请求。
location / {
conten_by_lua '
ngx.req.read_body()
local match = ngx.re.match(ngx.var.request_body,"STRING TO FIND")
if match then
proxy_pass http://www.ServerA.com/PathA/;
else
proxy_pass http://www.ServerB.com/PathB/;
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我安装了 OpenResty 并且 LUA 工作正常。
我想我在某处读到如果请求不是 HTTP POSTngx.req.read_body()将不起作用。那是对的吗?
感谢您的帮助。
我们有一个 2008R2 IIS 服务器,其中的站点配置为需要客户端证书。我们的测试客户端无法工作,我们正在尝试调试原因。
在此过程中,我们设置了一个新的 Server 2008 R2 机器(是的,我知道它很旧,但这就是运行该软件的机器)来尝试复制或确定故障排除方法。
我们正在研究的一种途径是 TLS 握手。测试应用程序是用 .NET 编写的,并System.Diagnostics启用了适当的调试,这会将以下条目放入日志文件中:
System.Net 信息:0:[22724] SecureChannel#48979325 - 我们有用户提供的证书。服务器已指定 10 个颁发者。寻找与任何颁发者匹配的证书。
我们无法看到此发行者列表,因此我们爆发了 OpenSSL。运行以下命令:
openssl s_client -connect win2k8r2-1.hsl10690.test:443 -state -no_ticket -servername win2k8r2-1.hsl10690.test
Run Code Online (Sandbox Code Playgroud)
结果输出如下:
[...]
-----END CERTIFICATE-----
subject=/CN=testcert.hsl10690.test
issuer=/CN=Internal Dev CA 1
---
No client certificate CA names sent
---
SSL handshake has read 1013 bytes and written 329 bytes
[...]
Run Code Online (Sandbox Code Playgroud)
因此,我们有一个不匹配的情况,Microsoft 堆栈声明服务器指定了 10 个颁发者,但 OpenSSL 报告服务器没有发送 CA 名称。
对于实时系统,System.Diagnostics 日志报告服务器指定的 130 多个颁发者,但 OpenSSL 仍然返回零。
我们认为问题在于我们提供的客户端证书与颁发者之一不匹配(但我们已经验证了根证书位于服务器的信任存储中,并且我们已经在服务器外部验证了证书)。在实时服务器上,我们在日志中看到“服务器已指定... ”消息之后:
System.Net Information: …Run Code Online (Sandbox Code Playgroud) 从 iptables 迁移到firewalld 并使用firewall-cmd 更新规则后,我的服务被正确过滤。然后我使用 Docker 将所有服务移至容器,并使用 docker-compose 运行所有内容。
我的默认区域是“公共”。我已手动将 docker0、我的外部(以太网)接口以及 Docker 容器似乎通过 (br-304604a31e79) 与外界通信的接口添加到“公共”区域。我已运行命令将带或不带标志的接口移至“公共”区域--permanent。
当我用来nmap扫描我的服务器时,Docker 容器中运行的服务仍然可以访问(仍然是“开放”,而不是“过滤”)。
为什么 Firewalld 不过滤在我的 Docker 容器中运行的服务?