Articles of nginx

docker集装箱在CIpipe道过程中

我正在尝试在我的简单CIpipe道中集成docker容器来部署一个webapp。 我有3个容器与Nginx,Tomcat和MySQL。 我了解如何使用Dockerfiles创build这些容器并将它们链接在一起的基础知识。 我的工件上传到Nexus服务器,我看到在Docker容器上部署工件的不同方式。 一个是重buildtomcat容器拉动新生成的工件,并在Dockerfile中的ADD中将其复制到容器中。 另一种方法是启动未更改的Tomcat容器,在包含从nexus获取的新工件的主机上安装一个卷。 我不明白从“docker的angular度来看”是什么样的正确方法。 我可以看到一个容器的可重用性与一些固定容器的configuration之间的权衡,我可以在没有额外的提供webapp文件夹进行部署的情况下运行和运行。 这是我的一般困惑。 同样的nginx容器。 如果configuration文件中的特定更改导致容器重build,或者我应该在启动容器时在主机上挂载一些文件? 非常感谢

在PHP下以不同的用户删除文件

我以用户www-data运行PHP,Nginx以用户nginx运行。 我需要删除用户nginx拥有的/var/cache/nginx/ ,我想用PHP来完成。 有没有办法让www-data删除/var/cache/nginx/ ? 或者有没有办法在PHP内执行rm作为用户nginx ?

在nginx地图指令中哪些字符是特殊的?

我正在将网站移动到新结构,并希望使用nginx的地图将旧url映射到新位置。 对于简单的情况就像一个魅力,但我有一些价值观的麻烦。 这是我试过的: /old/page1.htm /new/info.html; 奇迹般有效。 然后我尝试这些: /stw/wisselblog.nsf/0485b0c9032c281ac1257b10001decbb/839ed94b2337e5634825737600305ecf/entryrich/0.204?openelement&fieldelemformat=gif /blog/images/rtimg/23.gif; 在上面的变化中,然后在反斜杠上只有& ? 和=以及三者之前的任何组合。 这些都不起作用。 我得到错误: nginx: [emerg] conflicting parameter 。 如果你认为第一个URL是由你自己决定的, 我错过了什么? 更新 :因为文件名称改变,映射不是正则expression式。

如何在使用Nginx请求超限(limit_req)时redirect到其他链接

我一直试图限制来自单个IP地址的请求,Nginx模块limit_req成功。 但是现在我想redirect到其他网页来显示一些消息。我可以怎么做? 这看起来像Nginx只是支持limit_req_status更改响应状态代码

Nginx,redirect太多,err_too_many_redirects

我一直在使用2台服务器来学习和testing各种NGINX安装的proxy_pass(包括自定义编译和标准安装)。 我遇到的问题涉及到“err_too_many_redirects”; 具体来说,有很多清除caching的参考(我使用Chrome),但这并不能解决问题。 我也看过正则expression式希望find任何错误configuration,但到目前为止,没有任何东西(来自RTFM)向我显示任何暗示错误configuration的东西。 主服务器只有一个域,标准安装,下面只提到一个附加的“服务器指令”。 辅助服务器也有一个完全不同的域名的标准安装,在本地解决,而不是从外部请求(即“主机”文件configuration)。 server { server_name my2ndweb.com *.my2ndweb.com; location ~* { proxy_pass http://xxx.xxx.xxx.xxx; } … } 我也用“/”而不是“〜*”修改了位置指令,还修改了“proxy_pass”语句的FQDN(我在某处读取hosts文件可以parsing它,而不是redirect到本地地址.. .did什么也没有)。 无论如何,如果我使用单个服务器,只是将不同的域放置在不同的文件夹结构中,这一切都能正常工作,但是如果一台服务器发生故障,则会失败以实现故障切换选项的目的…-我没有configuration故障切换,只是考虑它。 注意:日志中没有其他错误关于redirect! k / r axetone

仅当params不存在时redirectNginx

这是我在Nginxredirect的要求 – Redirect Example 1. www.example.com/gaming.html -> www.example.com/gaming-zone.html No Redirect example (when params are present, dont redirect) 2. www.example.com/gaming.html?name=foo -> www.example.com/gaming.html?name=foo 我有一个非常简单的redirect设置 – rewrite ^/gaming.html$ /gaming-zone.html redirect; 满足示例1,但也redirect示例2。 有人可以请分享如何修复规则,以便包含参数的URL不redirect?

将htaccess rewritecond转换为nginx

我对nginx很新,但是以前有过apacheredirect的经验。 我将一个子域名转换为一个子文件夹,并需要一些帮助,让我的重写规则正确的交换机。 子域托pipe在apache服务器上,新的子目录托pipe在我的新nginx服务器上。 下面是包含我所需的redirect的工作htaccess文件: Options +FollowSymlinks RewriteEngine On RewriteCond %{HTTP_HOST} ^france-property\.frenchentree\.com$ [NC] RewriteCond %{QUERY_STRING} ^$ RewriteRule ^for-sale/(.*)$ http://www.frenchentree.com/property-for-sale/search/$1? [R=301,NE,NC,L] RewriteCond %{HTTP_HOST} ^france-property\.frenchentree\.com$ [NC] RewriteCond %{QUERY_STRING} ^$ RewriteRule ^for-sale$ http://www.frenchentree.com/property-for-sale/search? [R=301,NE,NC,L] RewriteCond %{HTTP_HOST} ^france-property\.frenchentree\.com$ [NC] RewriteCond %{QUERY_STRING} ^$ RewriteRule ^for-sale-details(.*) http://www.frenchentree.com/property-for-sale/details$1? [R=301,NE,NC,L] RewriteCond %{HTTP_HOST} ^france-property\.frenchentree\.com$ [NC] RewriteCond %{QUERY_STRING} ^$ RewriteRule ^buyer-registration(.*)$ http://www.frenchentree.com/property-for-sale/buyer-registration? [R=301,NE,NC,L] RewriteCond %{HTTP_HOST} ^france-property\.frenchentree\.com$ […]

如何在Nginx中使用重写来转换Apacheredirect规则?

我需要一些帮助将.htaccess的Apache重写转换为Nginx。 我的WordPress网站有这个url结构: https://domain.com/our-office/laos/ 我需要改变: https://domain.com/laos/ 我用Apache和.htaccess很容易地做到了这一点: Redirect 301 /our-office/laos /laos/ 但是现在我转移到了Nginx,我无法得到相同的结果。 谢谢。

单个VPS上的多个站点 – Nginxconfiguration

我正在尝试在我的VPS上托pipe4个NodeJS进程。 其中两个是必须可以通过浏览器访问的网站,可以称为a.com和b.com 。 a.com在端口3000上运行,而b.com在端口4000上运行。另一个是运行在端口7000上的网站,没有指向它的域名,所以我想用IP地址访问它VPS和端口,如0.1.2.3:7000 。 最后一个是在端口7500上运行的SocketIO进程,也应该可以通过它的地址: 0.1.2.3:7500 :7500进行访问,但是我想它的configuration应该和在7000上运行的类似,所以我们0.1.2.3:7500忘掉它。 我想我应该使用Nginx来做到这一点,但我不能configuration它的工作。 到目前为止,我已经设法使a.com和b.com正常工作,但我无法访问0.1.2.3:7000 。 我到目前为止所做的是在/etc/nginx/sites-available/创builda.com , b.com和c (在7000端口上运行的)configuration文件,并在/etc/nginx/sites-enabled为它们创build符号链接。 a.com server { listen 80; server_name www.a.com a.com access_log /var/log/nginx/a.com.access.log; rewrite_log on; location / { proxy_pass http://127.0.0.1:3000; } } b.com server { listen 80; server_name www.b.com b.com; access_log /var/log/nginx/b.com.access.log; rewrite_log on; location / { proxy_pass http://127.0.0.1:4000; } } C server […]

nginx位置正则expression式/ yyyy / mm / dd /

我试图通过其他服务器上的地址example.com/donor/2014/12/07/Name传递请求。 URIs like /donor/2014/12/07/Mike /donor.php?yyyy=2014&mm=12&dd=07&donor=Name /donor/2014/12/07/Mike ,我需要将它们转换为查询types: /donor.php?yyyy=2014&mm=12&dd=07&donor=Name 。 我目前的设置是: location ~* ^/donor/+$ { rewrite ^/(.*) /donor.php?yyyy=$1&mm=$2&dd=$3&donor=$4 break; proxy_pass http://XXXX; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }