服务器管理员

系统和网络管理员的问答

3
使用docker + nginx + php-fpm服务静态内容
我正在尝试使用docker配置php webapp。这个想法是php-fpm在一个独立的容器中运行应用程序,并让另一个容器运行nginx。此设置的想法是使用相同的nginx容器将请求代理到已经在同一台机器上运行的其他Web应用程序。问题是我无法nginx正确处理静态文件(js,css等),因为对那些文件的请求一直在进行fpm。 这是文件系统的样子: / ├── Makefile ├── config │ └── webapp.config └── webapp └── web ├── index.php └── static.js 我正在使用Makefile看起来像这样的整个东西(对此不感兴趣docker-compose): PWD:=$(shell pwd) CONFIG:='/config' WEBAPP:='/webapp' run: | run-network run-webapp run-nginx run-network: docker network create internal-net run-webapp: docker run --rm \ --name=webapp \ --net=internal-net \ --volume=$(PWD)$(WEBAPP):/var/www/webapp:ro \ -p 9000:9000 \ php:5.6.22-fpm-alpine run-nginx: …

2
10/20 / 40Gbps nginx大文件缓存Web服务器[达到20Gbps]
在此问题中,我想找到最好的配置/硬件,以从单个服务器提供40Gbps的速度。 情况 我们有一个视频共享代理服务器,可以从背后的慢速存储服务器上卸载峰值。所有流量仅是HTTP。服务器充当反向代理(未缓存在服务器上的文件)和Web服务器(存储在本地驱动器上的文件)。 当前大约有100TB的文件,并且在后端存储服务器上正在增长。 缓存机制是独立实现的,这个问题与缓存本身无关,因为它运行良好-当前提供14Gbps的速度,仅传递给2Gbps的后端服务器。因此缓存使用率很好。 目标 一台机器即可达到40Gbps甚至更高的吞吐量。 硬件1 硬件:Supermicro SC825,X11SSL-F,Xeon E3-1230v5(4C/8T@3.4GHz),16GB DDR4 RAM,2个Supermicro 10G STGN-i1S(LACP L3 + 4) 固态硬盘:1个512GB三星,2个500GB三星,2个480GB英特尔535、1个240GB英特尔S3500 系统: irqbalancer已停止 每个接口的set_irq_affinity(通过ixgbe驱动程序tarball中的脚本) ixgbe-4.3.15 I / O调度程序的截止日期 iptables为空(卸载模块) 文件系统:XFS Nginx: 发送文件关闭 AIO线程 指令1M tcp_nopush开启 tcp_nodelay在 如图所示,我们能够推动12.5Gbps。不幸的是,服务器没有响应。 有两件事引起了我的注意。第一个是大量的IRQ。在这种情况下,不幸的是我没有来自/ proc / interrupts的图表。第二件事是系统负载过高,我认为这是由于kswapd0仅在使用16G RAM时遇到问题。 硬件2 硬件:Supermicro SC119TQ,X10DRW-i,2个Xeon E5-2609v4(8C/8T@1.70GHz),128GB DDR4 RAM,2个Supermicro 10G STGN-i1S SSD,系统配置与硬件1相同。Nginx是sendfile上的文件(进一步比较aio / …

2
curl(56)接收失败:连接被同级重置-击中Docker容器时[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 上个月关闭。 从一个AWS ec2实例(运行docker),我正在尝试使用curlDocker容器托管的Web服务。 鉴于: [ec2-user]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b56fa0d76d5c $REGISTRY/$WORK/metrics:v0.1.0 "/bin/sh -c 'sh /root" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:9000->9000/tcp insane_leakey 我可以从容器中访问Web服务: [ec2-user]$ docker exec -it b56fa0d76d5c bash root@b56fa0d76d5c:/# curl 'http://localhost/health' Request is missing required query parameter 'apiName' 但是,我无法从主持人那里找到它: …

1
此任务要求指定的用户帐户具有“作为批处理作业登录”权限
我已经在Windows Server 2008 R2 Task Scheduler下创建了一个基本任务,但是当我尝试保存任务时出现以下错误:- This task requires that the user account specified has Log on as batch job rights. 现在我不确定此权限是否是在活动目录中定义的用户权限的一部分。还是这是我需要在本地Windows VM上单独定义的权限?任何人都可以对此提出建议吗? 谢谢

1
嵌套虚拟化-有可能吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 4年前关闭。 我需要在使用VMware ESXi 5.0创建的服务器上使用Win10。我将在VMware ESXi 5.0上安装Debian 6.0,然后在Win10 guest虚拟机操作系统上安装VirtualBox 5.0.14。能行吗

3
我该如何告诉SELinux在没有audit2allow的情况下允许nginx访问unix套接字?
我有Nginx通过位于的unix套接字将请求转发给gunicorn /run/gunicorn/socket。默认情况下,SELinux不允许这种行为: grep nginx /var/log/audit/audit.log type=SERVICE_START msg=audit(1454358912.455:5390): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=nginx comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' type=AVC msg=audit(1454360194.623:7324): avc: denied { write } for pid=9128 comm="nginx" name="socket" dev="tmpfs" ino=76151 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_sys_content_t:s0 tclass=sock_file type=SYSCALL msg=audit(1454360194.623:7324): arch=c000003e syscall=42 success=no exit=-13 a0=c a1=1f6fe58 a2=6e a3=7ffee1da5710 items=0 ppid=9127 pid=9128 auid=4294967295 uid=995 …
10 nginx  selinux 

3
Gmail将Dovecot电子邮件标记为不安全
我以为自己已经成功保护了Postfix / Dovecot电子邮件服务器。我有一个来自LetsEncrypt的签名证书,该证书对我的域有效。 发送和接收工作正常,但是由于Gmail开始标记不安全的电子邮件,因此从我的服务器发送的所有邮件都被标记为未加密。 Gmail用户会看到“此邮件未加密”,如下所示: 在Postfix的main.cf以及其他设置中,我有: # SASL, for SMTP authentication smtpd_sasl_type = dovecot smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_path = private/auth # TLS, for encryption smtpd_tls_security_level = may smtpd_tls_auth_only = no smtpd_tls_CAfile = /etc/letsencrypt/live/mydomain.com/chain.pem smtpd_tls_cert_file = /etc/letsencrypt/live/mydomain.com/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/mydomain.com/privkey.pem tls_random_source = dev:/dev/urandom smtpd_client_new_tls_session_rate_limit = 10 smtpd_tls_session_cache_database = …

3
在Ubuntu 15.04上使用systemd启动docker-compose
我有一个想通过systemd控制的docker-compose项目。在暴发户中,我将使用如下所示的脚本: description "Start/Stop server" author "Jim Cortez" start on filesystem and started docker stop on runlevel [!2345] respawn limit 3 240 pre-start script # wait (if necessary) for our docker context to be accessible while [ ! -f /projects/my_server/docker-compose.yml ] do sleep 1 done /usr/local/bin/docker-compose -f /projects/my_server/docker-compose.yml up -d end …

2
在.htaccess文件中分行
我在.htaccess文件中设置了Content-Security-Policy标头,并且它已经成长为一个非常长的单行,这很麻烦管理。有什么方法可以将这一行分解为更易于管理的子字符串? 作为一个简单的例子,说我正在设置标题 Header set Content-Security-Policy "deafult-src http://domainA.com; script-src http://domainB.com" 我可以(没有明显的中断问题)通过类似以下方式完成我的特定情况 Header append Content-Security-Policy "default-src http://domainA.com;" Header append Content-Security-Policy "script-src http://domainB.com" 但这会在字符串中插入逗号,因此我仍然很好奇是否可以在不添加其他字符的情况下普遍使用更好的答案。 理想的情况是,如果有一些串联字符可以用来将字符串分成较小的部分,例如 Header set Content-Security-Policy "default-src http://domainA.com;" \" script-src http://domainB.com" 要么 Header set Content-Security-Policy "default-src http://domainA.com;"^ " script-src http://domainB.com" 要么 Header set Content-Security-Policy "default-src http://domainA.com;" +" script-src http://domainB.com" 或者,如果我可以设置某种变量并仅转储其内容以执行类似的操作 a="default-src …


3
从私有注册表中删除标记的Docker映像
如何从私有Docker注册表中的映像中删除错误添加的标签?选项-rmi似乎不适用于Docker 1.9.1中的远程映像。 user@ubuntu-user:~$ docker --version Docker version 1.9.1, build a34a1d5 user@ubuntu-user:~$ docker search myregistry:5000/user/image NAME myregistry:5000/user/image:20160119 myregistry:5000/user/image:20160119-20160120 user@ubuntu-user:~$ docker rmi myregistry:5000/user/image:20160119-20160120 Error response from daemon: could not find image: no such id: myregistry:5000/user/image:20160119-20160120 Error: failed to remove images: [myregistry:5000/user/image:20160119-20160120]

2
具有DKIM签名的邮件被SpamAssassin获取T_DKIM_INVALID标志
我已经安装了带后缀和spamassassin的Debian(jessie)盒子。配置完毕,一切正常。 除了接收带有DKIM签名的邮件之外,T_DKIM_INVALID即使签名有效,也会产生一个标志。请参阅下面的日志示例。 之后,opendkim将验证签名并通过。 Jan 15 14:18:21 localhost spamd[30697]: spamd: connection from localhost [127.0.0.1]:51740 to port 783, fd 5 Jan 15 14:18:21 localhost spamd[30697]: spamd: processing message <id#1234567@mail.gmail.com> for user Jan 15 14:18:21 localhost spamd[30697]: spamd: clean message (-2.0/5.0) for user in 0.2 seconds, 2572 bytes. Jan 15 14:18:21 localhost spamd[30697]: …

3
无法加载资源:net :: ERR_CONNECTION_RESET
自从我开始在反向代理(Apache2的mod_jk)后面使用应用程序以来,我注意到某些页面将无法加载(如果没有反向代理设置,它们将无法加载)。 由于使用了谷歌浏览器,这是我必须检查才能发现的细微错误:无法加载资源:net :: ERR_CONNECTION_RESET。 简单来说,将部分加载JavaScript文件(从〜50KB中加载〜12KB)。 我认为Apache2,mod_jk,AJP或Jetty出了问题。 但是后来我进行了调查,在调查中我将使用不同的浏览器以及不同的网络。 结论: 仅当我使用具有静态 IP的网络时,才会发生此错误(ERR_CONNECTION_RESET)。 我在一台路由器上降低了安全级别,但徒劳无功。 具有静态IP的网络是否具有更高的安全级别? 如何克服这个问题? 这是一个僵局,因为反向代理主要用于利用我们销售点的静态IP地址来提高安全级别。

3
find -delete可以,但是不能用cron
请注意:我已经阅读了所有类似的问题。cron,路径,env变量等,但是找不到为我特定问题提供解决方案的方法。 我有一个脚本,可以执行一些MySQL转储,然后删除旧的这样的转储: /usr/bin/find "/home/bkp/dbdump" -name "*.gz" -mtime +5 -delete (以上命令已通过注释的建议从我的原始命令修改而来) 但是,当cron运行此脚本时,永远不会删除这些文件。cron用户是root。 调试说明 如果我手动运行该命令所在的脚本,它将按预期删除它们。 如果我以root身份从命令行单独运行上述find命令,它将按预期方式将其删除(并使用-print命令可按预期返回超过5天的文件列表) 我还在root的crontab中添加了一个明确的path语句,但这 并没有任何改变。 Cron不会发送任何错误,并且如果我将find操作通过管道传输到日志文件, 该文件将显示为空或完全未创建。 我正在使用Ubuntu服务器14.04.03 LTS。
10 cron 

1
从任务计划程序运行批处理文件,而无需用户登录
我正在尝试从Task Scheduler在Windows 7上运行批处理文件。如果我从命令提示符下运行该批处理文件,则可以正常运行。 如果我从任务计划程序运行它以仅在用户登录时运行,则该任务将运行而没有任何问题。但是,当它在用户未登录的情况下运行时,任务计划程序看起来像是在运行文件,但是什么也没有发生。 我尝试将批处理文件更改为以下内容,以确保不是由于批处理文件中的内容而导致的: echo "success" >> c:\temp\test.log 那是行不通的。有任何想法吗?我以最高特权和具有对批处理文件以及正在写入文件的文件夹的完全权限的管理员帐户来运行它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.