Articles of nginx

如何通过nginx.confvalidationGoogle网站pipe理员工具的网站所有权?

自从几年前,谷歌网站pipe理员工具网站所有权validation过程开始要求validation文件有一定的内容,而不是简单地在那里,并返回200 OK ,并确保其他附近的文件将返回404 Not Found等。 有了新的要求,我该如何使用nginx.conf单独提供Google网站站长工具站点validation文件?

修改由nginx实时代理的数据

我有一个nginx设置,接收来自外部主机的请求,并将它们代理到内部服务器。 configuration看起来像这样: server { listen 10.0.0.66:443; server_name my.example.com; root /websites/my.example.com ssl on; ssl_certificate /websites/ssl/my.example.com.crt; ssl_certificate /websites/ssl/my.example.com.key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; location / { proxy_pass https://10.0.0.100:3000/; } } 为了实验/testing目的,我希望能够运行内部主机通过任意二进制回复的内容,并回应二进制响应的内容。 例如 ,如果我想在代理上缩小html,我将通过htmlcompressor运行服务器的响应,然后将输出作为代理的响应发送到客户端。 最终的结果是最终客户端得到缩小的HTML。 我知道有各种各样的插件和nginx的例子来完成这个本地服务的数据,但如何设置它的代理?

如何设置与非捆绑networking服务器的Gitlab-omnibus?

安装 我通过debian 7 ( 7.8.1-omnibus-1_amd64.deb )上的omnibus软件包安装了gitlab软件包。 按照使用非捆绑networking服务器中的描述更改设置 运行reconfigure命令: sudo gitlab-ctl reconfigure (完成没有错误)。 Nginx的 我没有得到这个gitlab的nginxconfiguration,除了这个包可能用下面的/etc/gitlab/gitlab.rb文件创build的: external_url 'http://git.mydomain.fr' web_server['external_users'] = ['www-data'] nginx['enable'] = false ci_nginx['enable'] = false 日志 /var/log/nginx/gitlab_error.log 2015/02/28 14:29:16 [alert] 4137#0: *14738 768 worker_connections are not enough while connecting to upstream, client: xx128.194, server: git.mydomain.fr, request: "GET / HTTP/1.0", upstream : "http://xx128.194:80/", host: "git.mydomain.fr" /var/log/nginx/gitlab_access.log […]

有没有办法避免nginx 411 Content-Length所需的错误?

当我试图在不指定内容长度的情况下执行PUT时,我从nginx获得411状态。 有什么办法可以禁止这种情况发生吗?

Nginx正则expression式主机模式最终成为PHP服务器名称

我有一个nginx服务器定义与正则expression式匹配,如下所示: server_name ~^(?<vhost>[a-z0-9-]+)\.example\.com$; root /var/www/example/$vhost; access_log /var/log/nginx/$vhost.example-access.log; 这一切都很好,但是,这个域使用fastcgi和PHP-FPM托pipe各种PHP项目,在$_SERVER接收这样的值: SERVER_NAME => "~^(?<vhost>[a-z0-9-]+)\.example\.com$" HTTP_HOST => "myhost.example.com" 正如你所看到的,正则expression式模式被放入SERVER_NAME而不是它匹配的string。 这对我来说似乎有点儿麻烦,也代表了一个安全风险,因为它揭示了不必要的细节(在其他configuration中我匹配一组特定的名称而不是通配符)。 你可能会说“使用HTTP_HOST而不是SERVER_NAME” – 如果只是这么简单的话 – 有些库希望SERVER_NAME(不奇怪)包含服务器的名字。 我无法真正看到这种行为的一个很好的用例。

我怎样才能防止Apache崩溃?

我有一对服务器托pipe一个单一的Magento电子商务网站与中等stream量(每天从谷歌分析报告60k的页面浏览量,我认为约80k报告在服务器本身)。 数据库服务器运行平稳而迅速,除了偶尔出现的一个小问题,但是Apache服务器每隔一段时间就会崩溃。 我已经设置了magento来使用推荐的PHPcaching(APC),以及在1.5 gig的tmpfs中保存自己的caching文件(这个tmpfs经常变得非常满,而且当tmpfs是超过80%满)。 我从amazon cloudfront服务大多数图像。 我最近设置了nginx作为apache的反向代理(nginx也提供了静态文件)。 我已经尽我所能configuration了apache – keepalives和hostnamelookups已closures,preforkconfiguration如下: <IfModule prefork.c> StartServers 50 MinSpareServers 50 MaxSpareServers 100 ServerLimit 512 MaxClients 256 MaxRequestsPerChild 400 </IfModule> 我没有closures.htaccess文件,并打开访问日志logging。 我知道有一些模块可以closures。 如果有的话,我不确定这三个变化会有什么影响。 apache服务器是一个带有6个RAM的VPS。 到编写的时候,服务器报告的load average: 17.77, 18.27, 49.76是load average: 17.77, 18.27, 49.76 ,但是大约有load average: 17.77, 18.27, 49.76 RAM是免费的。 当它真的很糟糕,负载达到120+,并停留在那里 – 重新启动Apache将站点备份和负载回落。 vmstat是(而服务器正在报告上面的负载),我认为,显示一个CPU空闲值在0和70之间波动。 iostat显示0到0.2%之间的iowait值。 我有点卡住了 我所知道的是告诉我,问题在于由于正在运行的代码和用户数量的组合导致CPU过载。 但是我没有足够的经验来确定这是问题所在。 如果这是问题,我认为解决scheme是要么改善代码,要么分割托pipe在两个VPS上的负载平衡器的站点。 所以,我想我的问题是: 我还能做些什么来发现服务器上的问题或瓶颈? […]

如何使用nginx使用自己的证书设置多个子域?

除非我读过的每一个答案都是错误的,否则SNI应该可以做我想做的事情,然而每个指南都告诉我要做我正在做的事情。 然而,nginx正在提供错误的证书,所以我显然做错了什么。 ❯ sudo nginx -V | grep SNI %1 nginx version: nginx/1.10.3 built with OpenSSL 1.1.0f 25 May 2017 TLS SNI support enabled configure arguments: –with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-qJwWoo/nginx-1.10.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' –with-ld-opt='-Wl,-z,relro -Wl,-z,now' –prefix=/usr/share/nginx –conf-path=/etc/nginx/ngi nx.conf –http-log-path=/var/log/nginx/access.log –error-log-path=/var/log/nginx/error.log –lock-path=/var/lock/nginx.lock –pid-path=/run/nginx.pid –modules-path=/usr/lib/nginx/modules –http-client-body-temp-path=/var/lib/nginx/body –http-fastcgi-temp-path=/var/lib/nginx/fa stcgi –http-proxy-temp-path=/var/lib/nginx/proxy –http-scgi-temp-path=/var/lib/nginx/scgi –http-uwsgi-temp-path=/var/lib/nginx/uwsgi –with-debug –with-pcre-jit –with-ipv6 –with-http_ssl_module –with-http_stub_status_module […]

引用根位置作为服务器{}块中的variables

在我的nginx服务器{}块,我有一个path定义的根。 我怎样才能稍后参考这条路? 这是我想要完成的: server { listen 80; root /var/www/foosite; … include $root/*.ngaccess; } 不幸的是使用$ root不起作用(因为我没有定义它)。 Nginx是否提供了访问根值的方法?

使Nginx服务器响应缓慢

所以我在我的网站上有一个垃圾邮件发送者。 我可以使用'拒绝'来阻止他的IP,但是他会改变他的IP,我将不得不与他一起玩猫和老鼠。 相反,我很好奇是否有办法configurationnginx来更慢地响应他的IP。 这样,也许他会只是决定网站运作不正常,离开我一个人。 谢谢

有没有办法logging每个请求唯一的ID为Nginx?

似乎有几个第三方模块为此 https://github.com/newobj/nginx-x-rid-header https://github.com/hhru/nginx_requestid 但是,如果可能的话,我不想重buildnginx,我相信这是要求使用这两个模块。 我最初的尝试是使用$msec与$pid但是没有成功(我有一个进程在同一毫秒服务两个请求)。 我读过关于$connection ,似乎这将与$msec一起工作。 这会工作,还是有没有更好的方式,而不使用第三方模块?