Articles of nginx

redirect域和所有子域到一个特定的子域

我正在为我校校友会build立一个网站。 我从GoDaddy购买了一个域myschool.com 。 在GoDaddy中,我将DigitalOcean作为名称服务器进行了定制。 我想定制DigitalOcean的DNS,以便与域myschool.com相关的所有内容都可以redirect到alumni.myschool.com 。 确切地说,所有以下都可以实现: 如果在浏览器中inputalumni.myschool.com或www.alumni.myschool.com ,我希望url成为alumni.myschool.com ,浏览器在我的服务器IP 178.62.87.73显示我们的网站。 如果在浏览器中input错误的子域名(例如abc.myschool.com ,我希望URL仍然成为alumni.myschool.com ,浏览器在我的服务器IP 178.62.87.73显示我们的关联网站。 如果只是在浏览器中input域名,即www.myschool.com或www.myschool.com ,我希望URL仍然成为alumni.myschool.com ,浏览器显示我们服务器IP中的关联网站178.62.87.73 。 由于时差和DNScaching问题,很难尝试和testing一个设置; 很难说这是一个错误的设置还是需要等待。 那么有没有人能给我一个完整的logging列表(A,CNAME …)来实现这一点? 编辑2: 在第一个答案之后,我加了4个Alogging. ,他们变成了 @ IN A 178.62.87.73 alumni IN A 178.62.87.73 * IN A 178.62.87.73 *.alumni IN A 178.62.87.73 我在服务器中添加了以下服务器块: server { listen 80; listen [::]:80; server_name myschool.com *.myschool.com; return 301 $scheme://alumni.myschool.com$requrest_uri; […]

NGINX + SSL证书只保护某些浏览器的连接

我一直在解决这个问题,我似乎在不知道下一步该做什么的情况下陷入了死胡同。 我已经承担了另外一个休假的工人的任务。 他试图为两个不同的网站www.laenergiadelcambio.com和www.theenergyofchange.combuild立SSL证书。 这些是单个域的解冻证书。 注意:我们正在testing环境中进行这些更改,所以对NGINX URL vHosts文件的更改尚未公开。 HTTPS连接由NGINX服务器完成,在确保连接后,对服务于网站内容的Apache机器进行proxy_pass 。 首先,他遇到两个网站总是收到相同的证书(laenergiadelcambio.com)的问题。 经过一番阅读,我们发现,这是因为我们的操作系统(Centos 5.5)由于旧版本的openssl(0.9.8e)而缺lessTLS SNI支持(服务器名称指示)。 我们决定在每个服务器块中分配一个独特的IP来监听NGINX文档中的信息 。 这是事情。 它的工作原理,但不是在所有的浏览器和版本。 对于以下经过testing的浏览器: Opera 31.0.1889.174 Firefox 40.0 Firefox 38.0 Google Chrome 44.0.2403.157 Internet Explorer 11.0.9600.17691 Internet Explorer 9.0.8112.16421 每个人都能识别证书并build立安全连接。 一切都很好,没有问题。 但是对于下面的那些, Firefox 39.0.3 Firefox 40.0.3 lynx 2.8.5 我有证书不可信的错误。 Firefox抱怨:(错误代码:sec_error_unknown_iss) 我附上证书的详细信息 l thr给我这个… lynx www.theenergyofchange.com/wp-admin Making HTTPS connection to www.theenergyofchange.com Retrying […]

由于PCI DSSauthentication,NGINX仅为TLS 1.2。 我怎样才能警告其他人?

如何将那些不支持TLS 1.2的浏览器redirect到能够向他们解释情况的页面。

服务器configuration允许自定义域指向我的saas应用程序只需将其名称服务器更改为我自己的

我已经成功地build立了一个允许用户添加自定义域名的saas应用程序,我的问题是如何configuration我的服务器,以允许用户通过将他们的域名服务器更改为我的saas应用程序来将他们的域名指向我的saas应用程序名字服务器例如。 ns1.saasapp.com,ns2.saasapp.com我的栈是Nginx的php和mysql。

为什么每当我列出我的进程时,nginx都运行一个新的PID

为什么每次列出进程时,nginx都会用新的PID重新启动? 而且,为什么nginx开始运行? 输出如下图所示。 Nginx输出 我不知道这是否有用,但我正在用Apache运行Centos Web服务器。

如何允许在没有计划的情况下使用fopen和getimagesize urls而不是http://

我在网站conf中设置了open_basedir。 但我注意到错误“open_basedir限制有效”时使用gerimagesize以uri开头与//而不是http:// 如何让这个? 可以添加/ / open_basedir是一个安全风险?

在Nginx上设置“Expires”和“Cache-Control”标题

我有一个运行在DigitalOcean雾滴(nginx服务器)上的php网站,我也使用Cloudflare。 最近,我的网站遭到了一些我还不明白的东西,因为我的CPU使用率通常是1-2%,几个小时后又达到100%,导致服务器崩溃。 我的Cloudflare分析显示访问者人数非常多 – 其中我肯定不是人stream量。 Cloudflare要求查看我的nginx错误日志和访问日志。 以下是他们的回覆 – 您有2个caching标题,只要它们存储在我们的边缘,它们就会过期。 < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 和 < Expires:> Thu, 19 Nov 1981 08:52:00 GMT. 由于Expires头部设置为过去的某个时间,因此caching将在到达我们的边缘的时候过期。 那么你有你的caching控制头基本上说不存储任何资产在我们的边缘,但你有一个caching启用,所以我们的优势将继续抓取您的网站。 这可能会导致对您的来源的DoS攻击。 有人可以告诉我如何设置我的Nginx服务器上的过期头和caching控制头? 感谢您的回复,谢谢!

Nginx的Vhost互相冲突

我想使用nginx作为以下子域api.example.com和monitor.example.com反向代理,但api.example.com的configuration设置总是覆盖monitor.example.com 。 api虚拟主机有限速器,我不想在监视器虚拟主机上应用该设置access_log和access_logpath也不会在第二个虚拟主机设置上进行。 我可以正确访问后端服务器的内容,但我不明白为什么api.example.com的configuration设置也适用于monitor.example.com虚拟主机。 api.example.com limit_req_zone $binary_remote_addr zone=api:10m rate=90r/m; log_format custom '$remote_addr – $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$request_body"'; upstream backend { server web-06:80 max_fails=5 fail_timeout=20s; server web-01:80 max_fails=5 fail_timeout=20s; } server { listen 80; #logging #access_log off; #error_log off; access_log /var/log/nginx/access.log custom; location / { #rate limiting limit_req zone=api burst=1; […]

Nginx https和非www会导致很多redirect循环

我正在尝试做以下的事情 力量www。 在我的网站 301redirect到https 当我访问www.example.com时,出现了太多的redirect错误。 当我去到example.com,它工作正常。 不知道我错了哪里。 下面是我的服务器块代码。 server { server_name example.com www.example.com; return 301 https://www.example.com$request_uri; } server { server_name www.mydomain.com … }

当服务器正在设置cookie时,使用NGINX处理caching

使用NGINX微型caching我已经有了非常好的性能结果。 但是,我仍然不确定如何最好地处理具有Set-Cookie头的服务器响应。 NGINX可以caching原始服务器和Set-Cookie头的响应吗? 如果答案是否定的, Set-Cookie响应应该总是绕过caching层,这会对性能产生负面影响。 例如,当您访问运行WooCommerce的avarege电子商务网站时,这些cookie将在您的第一个visti上设置: 设置Cookie:PHPSESSID = XXYY 设置Cookie:wp_woocommerce_session_xx = YY 如果Set-Cookie响应被排除在caching之外,这意味着caching的内容永远不会在任何电子商店中首次访问。 另外,在WooCommerce商店上浏览产品时,插件会设置woocommerce_recently_viewed=xxxx cookie。 woocommerce_recently_viewed cookie将在每个产品视图上更新,以便随后对其他产品的请求将导致服务器包含Set-Cookie标头。 在这种情况下可以启用caching吗? 我在NGINX中使用的一些默认cachingconfiguration包括: if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; } 如果我在列表中包含woocommerce_recently_viewed cookie,则大部分时间内caching将被woocommerce_recently_viewed 。 在这种情况下处理caching和cookie的最佳做法是什么?