Tag: nginx

nginx php-fpm子代码退出

任何人有与11.0-RELEASE-P8的PHP-FPM 7类似的问题,或知道如何debugging? 情况在几分钟后开始,只向客户显示半页。 任何页面显示大约〜62kb的内容结尾 4. php-fpm的日志文件: [18-Mar-2017 15:41:49] NOTICE: [pool www] child 80582 exited with code 0 after 0.005648 seconds from start [18-Mar-2017 15:41:49] NOTICE: [pool www] child 80584 started [18-Mar-2017 15:41:49] NOTICE: [pool www] child 80583 exited with code 0 after 0.005877 seconds from start [18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 started [18-Mar-2017 […]

Nginx重复侦听:80错误的选项

当我运行命令来testing我的configuration时,我得到一个错误,说有[::]:80有多个重复。 在此之前,我有一个重复的多个默认服务器的问题。 当我有多个默认服务器的问题时,我的文件看起来像这样 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name munki; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /report { try_files $uri $uri/ =404; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; […]

如何防止HAProxy删除带有下划线的HTTP标头

我们有一个API后端服务器,需要某些包含下划线的HTTP头。 我知道,这不是最好的做法,标题应该使用连字符,但我不能改变这一点。 我们使用nginx作为代理服务器,并使用underscores_in_headers on选项。 这会导致nginx不删除这些头文件。 现在我们要切换到HAProxy,并在configuration更改之前将其作为nginx使用下划线删除标题。 有没有办法阻止HAProxy下拉字头?

nginx从.htmredirect到没有的url

您好新的网站启动。 前网站有这样的url: http://example.com/something.htm 新网站没有,看起来像这样: http://example.com/something 我怎么能告诉nginx做这个redirectpermanetly(301)。 我已经尝试rewrite ^(.*)$ $1.htm permanent; 没有成功。 location ~*\.(htm)${ rewrite ^(.*)$ $1.htm permanent; }

用nginx的安全

介绍 好吧,我很快就会成为新的生产networking,这个问题相当复杂(至less对我来说)。 我正在寻找来自更有经验的用户与Linux的build议,特别是安全的方式build立netwerk我是关于描述的build议。 我仍然是一个新手,但我现在负责build立这个新的networking。 目前,我正在使用一个负载均衡器,三个Web服务器和一个Apache数据服务器的设置上运行150多个网站。 现在所有的罚款,但是我正试图build立一个新的debiannetworkingnginx,因为性能的巨大增加。 我读了很多关于nginx和apache的信息,运行了几十个testing来比较两种情况下的性能,并得出结论:nginx在高压下(我们几乎只运行WordPress网站)处理请求的速度比apache快得多由于静态文件(有时在一个页面中有时超过100,浏览器可以明显但仍然可以兑现)。 当前设置 Debian 9 nginx 1.10.3 php-fpm(7.0) ldap 3 我把所有来自网站的数据都安装在每个networking服务器上的/ websites目录中。 nginx和fpm的configuration文件也位于那里的configuration目录中。 每个网站(我将使用example.com)都有自己的用户(通过ldap进行身份validation),并且位于组网站(也在ldap中)。 因此,每个用户的拥有700个所有者example.com和组网站的/ websites文件夹中都有他的主目录。 这样做是为了让每个网站都运行在他自己的孤岛上。 这意味着对于每个网站configuration我有一个php fpmconfiguration,为每个用户使用不同的套接字。 这意味着,它只能在自己的网站目录下执行php文件,对吗? 对于PHP这工作正常,我宁愿不改变这种configuration。 问题 问题在于,nginx的速度更快,因为它直接与静态文件相比,而mpm-itk模块为每个用户创build单独的进程,然后为静态文件或PHP提供服务。 Nginx做了这样的不同,通过使用不同的套接字为每个用户(至less在php),与mpm-itk模块为apache做的一样。 然而,nginx无法做到这一点,并尝试提供所有的静态文件,因为用户nginx运行(默认为www数据)。 所以输出是由PHP生成(工作正常),但nginx没有权限来显示静态文件。 我一直在努力寻找更多的一天的解决scheme,并得出了几个不同的结论。 以root身份运行 我的同事说,以root身份运行nginx将会解决这个问题,当然这样做对我来说似乎并不安全。 如果我在这里,也可能删除整个“每个网站都有自己的用户”政策。 将www数据添加到网站组 如果我可以添加一个unix用户(在这种情况下www数据)到一个LDAP组(显然我不能),我可以给组(网站)读取权限(而不是当前的700),所以它可以读取静态文件到处。 唯一的问题是,网站可以读取彼此的文件,而我试图避免。 所以这似乎也不是一个合适的解决scheme。 SELinux的 我读了一些关于SELinux的文档和介绍,对我来说,这似乎是一个解决这个问题的复杂的方法。 我从来没有使用它,并在这样的生产networking上运行这似乎不是一个好主意,因为我不知道我在做什么。 结论 那么,我现在从哪里经验丰富的用户将采取什么样的path? 在SELinux做更多的研究? AppArmor的? 还是有另一种更简单的方法来获得相同的安全apaches mpm_itk提供。 这是我有的最后一个问题,我没有find所有的configuration文件来设置这个,我需要执行的确切命令都完成了。 我希望有更多经验的人能给我一些build议,或者指点一下正确的方向。 无论如何非常感谢!

`/etc/init.d/nginx start`和`nginx`之间的不同行为

我从这里获得了/etc/init.d/nginx初始化脚本: https : //www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/ 在我的/etc/nginx/nginx.conf有include /etc/nginx/conf.d/*.conf; 其中包括我的网站的configuration文件。 但是,在/etc/init.d/nginx start ,似乎nginx并没有加载这些configuration文件,并且在访问时返回502。 另一方面,用命令nginx启动nginx工作得很好。 这里有什么问题?

Nginx:如何添加标题只有特定的文件和文本

我有多个需要添加相同的头集与Nginx的url。 这是文件名。 File Group1 https://www.example.com/news/2017-08-03/article-xyz/ https://www.example.com/news/2017-08-03/article-xyz/topics/ https://www.example.com/news/2017-08-03/article-xyz/gallery/ File Group2 https://www.example.com/news/2017-08-02/article-abc/ https://www.example.com/news/2017-08-02/article-abc/topics/ https://www.example.com/news/2017-08-02/article-abc/gallery/ 所以在这种情况下,文件组1需要: add_header Cache-Tag article-xyz; 而文件组2需要: add_header Cache-Tag article-abc; 所以nginx.conf应该是这样的 location /news/ { add_header Cache-Tag article-abc; } 但是,我怎样才能应用这个dynamic添加标题?

Nginx说在不同的根目录下请求PHP文件时找不到文件

我正在使用不同的根path/cloud但每当我尝试请求任何/cloud/*.php文件nginx说404文件未find。 我可以访问/cloud/*.html没有任何问题。 我甚至可以访问任何/*.php但不知道/cloud 。 我的configuration文件看起来像 server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html index.php; server_name _; location /cloud { root /home/fhost/public_html; } location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } }

在浏览器中隐藏客户证书对话框,同时仍允许客户端证书

我有一个nginx实例通过HTTPS提供Web应用程序。 Web应用程序同时提供浏览器和原生移动应用程序。 原生移动应用程序使用客户端证书作为附加authentication层,而Web浏览器仅使用用户名/密码。 浏览器和移动应用程序使用不同的path,但相同的TCP端点(IP /端口)。 问题是Web浏览器popup一个对话框,提示用户指定一个客户端证书。 取消这个对话框是完全正确的,因为它被configuration为在nginx中是可选的,证书的validation是在应用程序端完成的。 但是, 这对用户来说是非常混乱的 ,我需要弄清楚一个不显示对话框的方法。 我的要求: 要有不同的端点是非常困难的(两者都需要端口443,分配一个新的IP将很困难)。 请不要build议更改端点。 我很清楚这个解决scheme,如果一切都是绝对不可能的,这就是B计划,但是这将涉及到很多很多很多的IT头痛。 避免改变终点很容易,需要花费几天的时间。 除了改变端点之外,我完全控制客户端代码(即移动应用程序)以及服务器部署。 我可以根据需要更改协议,但需要在“普通”浏览器中支持HTTPS。 如果每个path很难有不同的客户端证书设置(这个老的线程似乎表示),我可以采取基于用户代理的select。 这不是安全问题,因为应用程序validation证书是否用于“敏感”path。 如果Nginx无法做到这一点,我会很乐意切换到另一个可以处理它的反向代理。 (Traefik,Apache,…?)

对于新鲜的Linux设置,我们是否仍然需要担心Heartbleed,Logjam等?

过了一段时间,当时发现了一堆严重的漏洞。 Heartbleed,Logjam,POODLE,FREAK等 过去一年没有这样的重大事件发生。 问题:如果我现在用Ubuntu 16.04 LTS(使用nginx webserver和postfix / dovecot邮件服务器)设置一个全新的Linux VPS,我可以安全地假设我对所有这些> 1年的漏洞?

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.