服务器管理员

系统和网络管理员的问答

4
使用nginx从URL中删除尾部斜杠
我希望我的网站上的以下URL是等效的: /foo/bar /foo/bar/ /foo/bar/index.html 此外,我希望后两种形式向第一种形式发出HTTP 301重定向。我只是在提供静态页面,它们是按照第三种形式排列的。(换句话说,当用户请求时,/foo/bar他们应在处接收文件/usr/share/.../foo/bar/index.html)。 我的nginx.conf当前包含以下内容: rewrite ^(.+)/$ $1 permanent; index index.html; try_files $uri $uri/index.html =404; 这适用于的请求/foo/bar/index.html,但是当我的请求/foo/bar或/foo/bar/Safari告诉我“发生了太多重定向”时,我认为存在无限的重定向循环或类似的循环。如何获取nginx以上述方式将URL映射到文件? 编辑:我的完整配置 这是我的全部nginx.conf,我的域名替换为“ example.com”。 user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; server_names_hash_bucket_size 64; include /etc/nginx/mime.types; …
14 nginx 

5
wget未获取/etc/resolv.conf中的第二个名称服务器
我的resolv.conf看起来像这样: ; generated by /sbin/dhclient-script search mcdc nameserver 10.0.4.48 nameserver 8.8.8.8 如果我这样做的nslookup www.google.com话 nslookup www.google.com ;; Got SERVFAIL reply from 10.0.4.48, trying next server Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: www.google.com canonical name = www.l.google.com. 但是当我卷曲www.google.com时,它无法解析主机。 我尝试在strace下运行curl,发现curl只在resolv.conf中使用第一个名称服务器,而不使用第二个。如果我改换两个名称服务器行,则www.google.com会解析,但内部DNS名称不会,所以那不是一个好的解决方法。 如何修复resolv.conf以同时使用两个名称服务器?

2
使用源目录而不是tarball构建RPM
在我的组织中,我们使用RPM将所有软件部署到生产机器上。我们的构建过程(自动进行)包括从版本控制中检出源代码,将源代码目录打包,然后使用该源代码tarball运行rpmbuild。rpmbuild仅使用该tarball解压缩源以对其进行处理。因此,看起来整个去皮和去皮业务只是构建过程中不必要的额外步骤。有没有一种方法可以仅在spec文件中指定源目录,从而避免那些额外的步骤?
14 rpm 

4
使用username @ domain格式时,Dovecot用户查找失败
我在FreeBSD服务器上安装了Dovecot v2.0.11,并且对输入电子邮件地址的用户查找失败,但是对系统用户的查找成功。 Dovecot设置为使用系统用户,因此我的dovecot.conf具有 userdb { driver = passwd } 和 passdb { driver = passwd } 我已启用身份验证调试。 例如,我有一个名为webmaster的用户,使用doveadm用户作为“ webmaster”的工作方式如下: #doveadm user webmaster userdb: webmaster system_groups_user: webmaster uid : 1020 gid : 1020 home : /home/webmaster 但是,使用doveadm用户查找webmaster@myregisteredname.com失败,如下所示: # doveadm user webmaster@myregisteredname.com userdb lookup: user webmaster@myregisteredname.com doesn't exist 这导致webmaster@myregisteredname.com的传入邮件被退回,并显示“未知用户”错误。 这是在/ var / …

2
为什么scp不覆盖我的目标文件?
我正在尝试通过命令备份文件 scp /tmp/backup.tar.gz主机名:/home/user/backup.tar.gz 运行该文件时,它将显示scp进度条,看起来就像是正在传输文件,但是当我登录到目标服务器以检查文件时,时间戳和文件大小与旧版本相比没有变化,因此看起来scp根本没有覆盖旧文件。仅当我从目标服务器中手动删除文件时,它才起作用。 我正在运行ubuntu,这在两台服务器上发生:一台cygwin ssh和一台fedora core 3。 有人知道为什么会这样吗?我以为scp只会覆盖现有文件。 谢谢


2
如何记录有关cookie的信息?
我想将cookie信息添加到我的Apache访问日志中,即:电子邮件,用户名(cookie由php文件而不是Apache创建)。 我可以添加一些log.conf文件类似于:\"%{cookieName}i\"到 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 如果那行不通,我是否使用Cookie日志并将其与访问日志结合在一起?如何使用?
14 apache-2.2 


4
systemctl无法识别我的服务:默认启动不包含任何运行级别,正在中止
我想定义一个在Ubuntu服务器16.10上启动时启动的简单服务。所以我创建了一个/etc/init.d/mydaemon 我以某种方式弄乱了upstart和systemd:起初我以为我必须设置upstart服务。因此,在将文件转换为新贵语法后,我运行update-rc.d mydaemon defaults。 我找出了错误并运行update-rc.d mydaemon remove,转换为systemd语法,然后运行systemctl enable mydaemon,但是得到了错误: mydaemon.service is not a native service, redirecting to systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable mydaemon update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
14 ubuntu  systemd 

3
如果退出结果为0的情况下如何退出所有主管程序
我像这样用主管运行docker容器: Docker文件 CMD ["/run.sh"] 运行 #!/usr/bin/env bash exec supervisord -n Supervisor-serf.conf [group:job] programs=serf,producer [program:serf] command=/start-serf-agent.sh numprocs=1 autostart=true autorestart=unexpected stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start-self-agent.sh #!/bin/bash exec serf agent --join=serf:7946 -tag role=producer 主管服务 [program:producer] command=/start.sh numprocs=1 stopasgroup=true killasgroup=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 start.sh #!/bin/bash exec /producer --project=${NAME} 生产者停止后,我得到: producer_1 | …

5
子网域的Nginx伺服器名称冲突
我目前在Nginx上为foo.domain.com运行了一个虚拟主机,一切正常。 我为要添加的新子域创建了一个名为bar.domain.com的新文件。我对两者使用相同的设置。 重新启动Nginx时,我得到 Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx. 当我访问bar.domain.com时,我会看到应该看到的内容,但是当我访问foo.domain.com时,我看到了bar.domain.com链接到的页面。 oo upstream php-handler { server unix:/var/run/php5-fpm.sock; } server { listen 80; server_name foo.domain.com; return 301 https://$server_name$request_uri; } server { listen 443; ssl on; ssl_certificate [path_foo]/cacert.pem; ssl_certificate_key [path_foo]/privkey.pem; root [path]/foo; ... } 酒吧 server { …
14 nginx  ssl  virtualhost 


4
如何将Nginx数据复制到两个服务器?
我正在尝试将一台特定Nginx服务器收到的流量复制到两台服务器。目标不是负载均衡,而是在所有nginx服务器上重放相同的输入。 一个示例:Nginx接收HTTP POST。我想将此相同的POST发送到其他服务器。 **更新** 这种情况既简单又复杂。我只需要将POST数据(或GET或任何请求数据)重新发送到另一个服务器IP(它也运行nginx实例)。只是它。 用户-> POST数据-> NGINX实例----重定向--->服务器1和服务器2
14 nginx  ab 


7
如何拒绝网络访问某些文件?
我需要做一个有点奇怪的手术。 首先,我在Debian apache2上运行(以用户www-data“运行”) 所以,我有.txt或.ini或任何扩展名的简单文本文件,都没有关系。 这些文件位于具有以下结构的子文件夹中: www.example.com/folder1/car/foobar.txt www.example.com/folder1/cycle/foobar.txt www.example.com/folder1/fish/foobar.txt www.example.com/folder1/fruit/foobar 。文本 因此,文件名始终相同,即“层次结构”的同上,只需更改文件夹的名称:/folder-name-static/folder-name-dinamyc/file-name-static.txt 我应该做的是(我认为)相对简单:我必须能够通过服务器上的程序(例如python,php)读取该文件,但是如果我尝试通过浏览器(将网址www数字化)来检索文件内容。 example.com/folder1/car/foobar.txt,或通过cUrl等。)我必须收到一个禁止的错误,或其他任何错误,但不能访问该文件。 即使通过FTP访问这些文件也是“隐藏的”,或者无论如何都无法下载(至少我与ftp根目录和用户数据一起使用),这也很好。 我能怎么做? 我在网上找到了这个文件,放在文件.htaccess中: <Files File.txt> Order allow, deny Deny from all </ Files> 似乎可行,但前提是该文件位于Web根目录(www.example.com/myfile.txt)中,而不位于子文件夹中。此外,在第二级(www.example.com/folder1/文件夹水果 /foobar.txt)将dinamycally创建..我想,以避免随时更改.htaccess文件时间。 可以创建一条规则,适用于所有具有给定名称的文件,例如* www.example.com / folder-name-static / * folder-name-dinamyc / *** file-name -static.txt *,这些部分总是相同的,只是**那一个变化? 编辑: 正如Dave Drager所说,我可以简化一下,将那些文件保留在Web可访问目录之外。但是这些目录也将包含其他文件,图像以及我的用户使用的东西,因此我只是尝试不使用重复的文件夹系统,例如: /var/www/vhosts/example.com/httpdocs/folder1/car/[other folders and files here] /var/www/vhosts/example.com/httpdocs/folder1/cycle/[other folders …

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.