Articles of nginx

Nginx和php由不同的用户运行。 这是一个坏主意吗?

我刚刚发现我的nginx用户与(“php-user”)返回的是不一样的。 这两个用户都不是root用户。 不过,我想知道这个configuration是否会导致未来的问题呢? 我正在使用Ubuntu 12.04。

nginx.conf中的server_name似乎被忽略

我有一个域名,让我们说example.com指向我的服务器。 而我的nginx.conf是: upstream domain { server 127.0.0.1:8002; } server { listen 80; server_name <example.com>; client_max_body_size 10M; keepalive_timeout 15; 在开发过程中,我想停用example.com。 我用<different_name>replace它。 server { listen 80; server_name <different_name>; client_max_body_size 10M; keepalive_timeout 15; 它正常工作正常与<different_name>但它仍然继续响应<example.com> 。 我不明白为什么。 我希望nginx在<example.com>上完全不回应。 当然,我不会忘记像gunicorn和nginx那样重启服务。 编辑:它可能是一个重复的职位,build议。 在我看来,这个问题暴露在你提到的职位是困惑的。 即使标题不明确。 “nginx开启反向代理”是什么意思呢? 我试图用明确的术语来揭露我的问题,这个问题有一个类似的解决scheme,记住它可以/应该是可重用的,并且对每个人都更加明确。

无法从Nginx中删除强制HTTPSredirect?

我最初设置了我的Nginxconfiguration来自动将HTTPredirect到HTTPS。 由于我的工作安全策略和Cloudflare集成,HTTPS不会在我的networking内部解决。 我只想删除强制redirect到HTTPS。 但在用URI重写注释掉该块之后,服务器仍会自动redirect。 这是我对Nginx的默认configuration #HTTPS redirect (if necessary) #server { # listen 80; # server_name example.com; # rewrite ^ https://$server_name$request_uri? permanent; #} server { listen 80; listen [::]:80 default_server ipv6only=on; listen 443 ssl spdy; root /var/www/example/current/public; index index.php index.html index.htm; spdy_chunk_size 8k; spdy_headers_comp 7; server_name example.com; # Point to ssl certificates ssl_certificate /root/example.com.crt; ssl_certificate_key […]

我如何处理我的SSL证书下载文件?

我第一次使用SSLbuild立一个nginx服务器。 我买了一个ssl证书,做了我生成一个csr的所有东西。 我激活了我的SSL购买,最后下载了证书。 当我下载证书我有一个zip文件夹。 zip文件夹中有3个文件; my_site.ca-bundle,my_site.crt和my_site.p7b。 我知道我应该如何configurationnginx,但我不知道下载中包含的ca-bundle和p7b文件的意义。 对于nginxconfiguration我只需要一个crt文件和从生成CSR的时候的键: server { listen 443 ssl; server_name www.example.com; ssl_certificate www.example.com.chained.crt; ssl_certificate_key www.example.com.key; … } ca-bundle和p7b文件是重要的还是crt文件是我唯一需要的东西?

哪个Web服务器有更好的重写语法,模仿Apache的?

由于大多数开源项目包括mod_rewrite规则与Apache的工作,我需要能够将它们转换为lighttpd或nginx的工作。 哪个Web服务器允许我将规则完全转换为Apache的等价物? 如果两者都可以完全转换哪一个有更好的语法和更好的模拟Apache的高级选项? 例如,我将使用Wordpress的.htaccess。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

有多lessNGinxredirect?

我正在研究一个以新闻为中心的网站,这个网站已经有很多年了,并且正在稳步地增加页面redirect。 目前我们有大约375个redirect,每月增加5-10个。 我知道NGinx在处理redirect方面速度非常快,但是大概必须有一些redirect会以一种有意义的方式影响性能,如果我知道有多less个redirect,我会感觉更好。 数百? 成千上万的? 百万? 我们可以通过在Memcachedcaching热门页面一两分钟来处理大量的stream量(减less数据库的负载,这是一个明显的瓶颈),但是NGinx仍然需要路由该stream量。 这是我应该关心的吗? 高stream量网站有多lessredirect? [最初张贴在StackOverflow]

主机提供哪些域名?

对于由我公司运营的一套VPS,我想获得每个托pipe的域名列表。 名单名单几年来以临时方式增长。 有没有简单的方法来查询Apache和/或Nginx的configuration,以查看服务器端口80上回答什么域? 假设(a)我有这些系统上的sudo,和(b)他们没有使用通配符,尽pipe一个解决scheme承认通配符在使用也是有用的,如果它也提供了一个明确的列表域。

caching:在多个网站环境中的Nginx上varnish vs fastcgi_cache

我有一个VPS与几个网站的设置。 一些网站是WP网站,其中一些是其他dynamic网站。 我有兴趣添加一种反向代理/caching层。 不过,我不想caching所有的网站… 我看到很多人推荐使用清漆。 我在Varnish中发现的问题是需要80端口并caching所有内容。 当我正在寻找解决scheme或避免caching某些网站的方法时,我发现fastcgi_cache。 显然,你可以直接通过Nginxcaching到文件中,然后静态地提供服务。 我也看到了一些可以从Nginxcaching到memcached的地方,但是我现在还不知道。 无论如何,这里是我的select:1.使用Varnish,并以某种方式调整configuration文件传递基于域名的请求。 2.在Nginx上使用fastcgi_cache。 3.使用三明治。 让Nginx监听端口80,为静态文件提供服务,并将所有php文件发送到另一个端口上的Varnish,并将所有未caching的用户传递给另一个Nginx实例。 你觉得我应该怎么做? 谢谢。

nginx httpMapModule正则expression式variables

HttpMapModule文档指出: 从1.0.4开始,不区分大小写的正则expression式可以通过在模式前添加〜*来使用。 举个例子: map $uri $myvalue { /aa /mapped_aa; ~^/aa/(?<suffix>.*)$ $suffix; } 我更新到nginx/1.2.7使用这个,天真的正则expression式工作好,但variables不。 当我尝试上面的语法,我得到的错误: nginx: [emerg] pcre_compile() failed: unrecognized character after (?< in "^/aa/(?<suffix>.*)$" at "suffix>.*)$" 我也尝试了下面的语法,但是没有一个工作: ~^(.*)$ $1; ~^(.*)$ \1; 但他们都没有工作。 有谁知道如何让variables在HttpMapModule正则expression式中工作?

我的网页没有得到caching服务,但nginx实际上是caching文件

我已经在ubuntu中设置了一个nginx服务器作为反向代理caching服务器。我的应用程序代码驻留在/ var / www / myapp文件夹中。 以下是我给出的configuration server { listen 80; ## listen for ipv4; this line is default and implied root /var/www/; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { proxy_pass http://127.0.0.1:8080/; rewrite ^([^.]*[^/])$ $1/ permanent; add_header X-Cache-Status $upstream_cache_status; } location /doc/ { alias /usr/share/doc/; autoindex on; allow […]