Articles of nginx

将nginx与Docker的共享库编译成一个小图片

Docker的图像大多是巨大的,我正在梦想一个微小的,非常小的nginx图像。 这个想法是编译它,并创build一个只有nginx二进制文件,configuration文件,所需共享库等的Docker镜像。 所以问题是:如何弄清楚编译的应用程序需要哪些共享库? 知道列表,我会尝试打包一个包含所有依赖关系的文件夹,并将其作为最小的Docker容器发布。 这不仅是关于nginx,而是关于如何处理这些情况的通用配方。 也许,一些交叉编译技术可以在这里帮助?

如何在www中将wwwredirect到全局的非www?

我知道如何redirect到非www的nginx内的单个网站,但我有很多的网站。 那么我怎样才能在全球范围内为他们做这些?

Nginx重写了一大堆URL到444

我正在寻找一个重写,将拿起任何数量的定义的url,并做任何返回444。 我没有单独写出每一个,而是希望能find一些我可以做的地方,如果location = defined file或者list,然后返回444。 我正在使用每个url的例子,这个工程。 我只想将wp-login.phpreplace成某种列表。 location = /wp-login.php { return 444; } 编辑:我试着做下面的东西,但不幸的是,没有工作 location = (/wp-login.php|/wp-admin.php) { return 444; } EDIT2: 谢谢泽维尔卢卡斯,这正是我所需要的。 我使用了你提到的,然后添加了一些它来添加更多不同格式的URL。 我们收到了大量的垃圾邮件怪异的URL,所以这很好。 location ~ ^(/wp-(admin|login)\.php|/url/path(.*)|/url2(.*)) { return 444; }

如果在没有引用的情况下如何拒绝nginx的请求?

在nginx access.log中,我看到很多行: 1.2.3.4 – – [19/Oct/2014:22:48:11 -0400] "POST /someurl/suburl HTTP/1.1" 200 19967 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2" 只有它们之间的共同点是“ – ”(我认为这意味着没有设置引用者)。 所以我试图否认这些请求使用: if ($http_referer ~ ^(-)) { return 444; } 但是,正如您在上面看到的,这对POST请求不起作用。

nginx代理不断变坏网关

我正在运行一个CentOS7虚拟机,并尝试将其代理到Windows Server 2012上运行的亚音速服务器。当我使用Apache时,它工作没有问题,但我目前正在尝试使用nginx做同样的事情,但我保持getitng 502错误的网关。 我似乎无法确定是什么原因造成了这个问题。 我的nginx.conf: server { listen 80; server_name *.example.com; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy […]

Nginxconfiguration不能在子目录中使用wordpress

我有一个nginx安装,我需要在开发中托pipe网站,以便其他人可以testing出来。 现在,我已经为单个子域设置了一个虚拟主机,并且在这个目录中,我需要打开一个符号链接项目,以便testing。 正如你所看到的,我限制了访问整个网站,但启用了特定的目录,但保持私有一个简单的auth_basic。 PHP的运行,但我一直得到的东西除了/或/ wp-admin /之外的其他东西,所有其他永久链接给404s。 我已经做了所有的事情来完成这个工作,但我不知道我做错了什么。 请在下列configuration中指出我的错误: server { listen 80; server_name dev.example.com; client_max_body_size 20m; server_tokens off; root /srv/dev.example.com; index index.php index.html index.htm; location / { deny all; } location /my-site { allow all; try_files $uri $uri/ /index.php?$args; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/auth.d/.htpasswd-my-site; location ~ \.php$ { include fastcgi_params; fastcgi_index index.php; fastcgi_pass php5-fpm-sock; fastcgi_param SCRIPT_FILENAME […]

如何在CentOS7上卸载nginx

我使用这个指南从src自己安装了Nginx,现在我想摆脱它。 但似乎没有什么可做的,除了清除src在usr/local/src我没有yum list installed | grep nginx yum list installed | grep nginx但没有结果。 我在做whereis nginx给我的那些目录。 nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx 所以,我的问题是,如果我想彻底清除nginx,是否足以删除这三个目录?

Nginxredirectstring中的最后一个片段

我正在努力弄清楚如何重写以下url: http://example.com/blog/01-01-01/string 至 http://example.com/string 以下正则expression式匹配string – ^blog\/\d*-\d*-\d*\/(.*) 我的nginxconfiguration块是: location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:2368; proxy_redirect off; rewrite ^blog\/\d*-\d*-\d*\/(.*) http://example/$1 permanent; } 然而这是行不通的。 我正在努力看到我在这里失踪。 我已经尝试了一些这个变化,但我卡住了,任何帮助将不胜感激。

不允许Nginx conf导致服务器伪指令失败

我的一个虚拟主机有问题。 当我重新启动nginx时,它是失败的。 所以我试了一下: nginx -c /etc/nginx/sites-available/website -t 这是我的问题: nginx:[emerg]“server”指令在这里不允许在/ etc / nginx / sites-available / website:1 我看了这个post: nginx服务器指令不允许在这里,但我的nginx.conf是正确的,我没有他的问题。 这里是网站configuration的内容: server { server_name www.weacms.com; root /home/ebuildy/website/weacms; index index.html index.php; pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache; location / { try_files $uri $uri/ /index.php; location = /index.php { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } location ~* […]

Nginx以纯文本格式(Mod_Rewrite)提供php文件,

在Nginx中没有.htaccess(Mod_Rewrite)。所以我把我的.htaccess转换成可以读取并放在default.conf中的格式。 原始htaccess: Options -Indexes RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/$0 [PT,L] 将htaccess转换为Nginx格式: # nginx configuration autoindex off; location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?/$0 break; } } 正确…即时问题在那里.. Nginx不支持参数$ 0, 所以我已经改变了这个$ uri 问题我现在有..当我访问我的网站http://vibeshed.com/admin我得到下面的结果:(顺便说一句,我只是下载文件,但我删除了默认的MIMEtypes)。 见图: 任何帮助? 我的网站default.conf是: # # The default server # server { listen 80; server_name vibeshed.com; […]