Articles of nginx

Nginxredirect问题

我的Nginx设置目前有这样的: location / { if (!-e $request_filename){ rewrite ^/(.*)$ https://domain.com/index.php?id=$1 redirect; } } 基本上对于不存在的页面(404),它将用户redirect到主页。 但是现在我在https://domain.com/blog/上有一个wordpress博客设置,但是任何wordpress项目,例如。 https://domain.com/blog/test也被redirect到主页。 我不知道如何解决这个问题?

分离目录nginx中的Audio,js,css和图片

我有一个dynamic网站,运行在nginx和php-fpm上。 如果图像,audio文件,CSS,JS文件放在一个单独的目录,可以有任何性能改善。 这是我目前的设置: location /var/www/kk/images { root /var/www/kk/images; autoindex on; } location /var/www/kk/js { root /var/www/kk/js; autoindex off; } location /var/www/kk/css { root /var/www/kk/css; autoindex off; } location /var/www/kk/audio { root /var/www/kk/audio; autoindex off; } 如果这不是最好的方法,你可以告诉我为什么,还有更好的方法来做到这一点?

不同步的命令

我有nginx作为服务器(PHP和MySQL)。 在nginx.conf中,我放置了limit_req_zone(5r / s),并不时收到“Commands out of sync error”。 有些身体可以告诉我为什么这碰巧?

nginx url重写为php-urls

我不得不在nginx中redirect一些旧的url。 旧的url是旧式的PHPurl,包括加载内容的参数。 他们看起来像这样: http://www.foo.com/index.php?site=foo http://www.foo.com/index.php?site=bar 我想redirect他们到其他url,如: http://www.foo.com/news http://www.foo.com/gallery 任何意见,我怎么能做到这一点? 我的尝试失败了。 提前致谢!

重写新的URL并阻止nginx中的旧URL

我有一个本地文件夹/bar ,我想通过http://www.example.com/foo 。 所以我有这样的configuration rewrite ^/foo/(.*)$ /bar/$1 last; 同时,我想阻止公众访问真正的url /bar , 然后我像添加configuration location ~* ^/bar{ return 404; } 但是当我把这个URL添加到configuration中,上面的第一个configuration不起作用,现在都返回404 任何我应该修复,以使重写工作? 谢谢。

Nginxconfiguration – 我无法访问WordPresspipe理区域

对于Nginx来说,我是一个完整的noob,但是我正在尝试切换到我的WordPress站点。 一切正常,甚至永久链接,但我不能访问我的WordPresspipe理目录(我得到一个403错误)。 我有我的WordPress安装在一个子文件夹,所以使我的一些事情复杂一点。 这是我的Nginxconfiguration文件: server { server_name mydomain.com; access_log /srv/www/mydomain.com/logs/access.log; error_log /srv/www/mydomain.com/logs/error.log; root /srv/www/mydomain.com/public_html; location / { index index.php; # This is cool because no php is touched for static content. # include the "?$args" part so non-default permalinks doesn't break when using query string try_files $uri $uri/ /index.php?$args; } location /myWordpressDir { try_files $uri […]

当我通过负载平衡器访问它时,Nginx将redirect改变为错误的端口

编辑 – 我改变了这个问题,因为我错了错误来自哪里 我在使用Openam部署时遇到了一些问题,并想知道您是否可以提供帮助。 我的设置如下:2个OpenAM服务器设置在负载平衡器(HAproxy)的后面。 负载平衡器设置在两个反向代理(nginx)之后。 两个反向代理服务器在另一个负载均衡器(haproxy)之后。 所以一个请求将通过Haproxy> nginx> Haproxy> openam 我可以通过反向代理访问OpenAM Web控制台,而不会出现问题。 一切工作正常在这个水平。 问题是当我通过nginx serevrs前面的负载均衡器访问openam的时候。 我的nginx服务器在端口443上运行。当我通过haproxy> nginx> haproxy> openam访问openam时,nginx使用端口443redirect浏览器。这是发生问题的地方。 我访问login页面的负载均衡器url是http:/ loadbalancerHostname:8090:openam / Login / UI。 我可以成功login。 但是,在login后更改为http:/ loadbalancerHostname:443:openam /。 港口不应该改变。 为什么nginx改变端口,我怎么能阻止它? nginxconfiguration: server { listen 443; server_name oamlb1; location / { proxy_pass http://oamlb1.mydomain.com:8080; proxy_set_header X-Real-IP $remote_addr; } location /openam { proxy_pass http://oamlb1.mydomain.com:8080; proxy_set_header X-Real-IP […]

捕获URI的一部分,并用它在Nginx中进行条件重写

我正在写一个Nginxconfiguration的位置块,它是这样的模式的URI: www.mysite.com/a/b/blah/c或www.mysite.com/a/b/blah/c/n 。 如果a和b是固定的,那么blah可以改变, c可以是三个固定string(optionA,optionB,optionC)中的一个, n是从0,1,2等等开始的数字。 另外,只有当c等于optionB时n才有效,所以在其他情况下,Nginx应该在c之后立即抛出404 。 我打算写一个位置块如下: location ^~ /a/b/ { … } 我想在这个位置实现的逻辑:首先从一个给定的URI获取c ,并根据它的值,做三个可能的重写之一。 即 if (c = optionA) { rewrite … … break; } if (c = optionB) { rewrite … … break; } if (c = optionC) { rewrite … … break; } 我的问题是: 我已经读过, if语句应该在Nginx中的位置块通常避免,但它似乎与rewrite使用是一个例外。 我在这里rewrite的方式会导致任何问题吗? 如何捕获c并在这里实现条件重写逻辑?

乘客nginx安装不带有服务来重新启动nginx?

你如何重新启动一个Ubuntu的乘客nginx安装nginx? 我安装了乘客,然后自动安装了nginx。 但是没有命令可以在任何地方重新启动nginx。 我试过服务重新启动nginx和/etc/init.d/nginx重启,没有运气。

Nginx安装源码最佳实践

我想在CentOS上安装Nginx作为反向代理。 我知道三种不同的方式来安装NginX: 编译自己 通过EPEL安装 通过官方的NginX包仓库进行安装 你会推荐哪种方式用于生产用途? 在官方的源代码中安装Nginx有什么好处吗?