用nginx,所有的文件都应该由www-data所有? (假设nginx正在www数据的上下文中运行)。 或者是根好吗?
我最近把我的Apache web服务器切换到Nginx,一切都很好。 我唯一无法运行的东西就是Smokeping( http://oss.oetiker.ch/smokeping/ )。 Afaik Smokeping由一个.cgi脚本运行,Nginx不能运行这些脚本。 有谁知道如何使Nginx运行Smokeping? 也许有一种方法来将Smokeping转换/运行为FastCGI?
我正在使用nginx,并想限制对除我以外的每个人的目录的访问。 我想在/限制访问PHP脚本。 到目前为止,我已经尝试了一些东西。 如果我记得,这阻止访问所有除了允许的IP,但所有的脚本被推送下载,而不是现在处理。 location ~ /restricted { allow 1.2.3.4; deny all; }
我设法find一个重写制作子域(我有一个通配符域指向我的服务器; *.domain.com 。 如果我去test.domain.com ,它工作得很好,横向于: /var/www/domain.com/www/test/ 如果我做example.test.domain.com ,它应该这样做: /var/www/domain.com/www/test/example/ 这是test目录中的另一个目录。 这是我发现使用的重写,但我应该如何实现在这个两个目录子域? if ($host !~* ^www\.domain\.domain$) {} if ($host ~* ^([^.]+)\.domain\.com$) { set $auto_subdomain $1; } if (-d /var/www/domain.com/www/$auto_subdomain) {} if (-f /var/www/domain.com/www/$auto_subdomain$uri) { rewrite ^(.*)$ /$auto_subdomain$uri; break; }
我想301没有任何查询string重写到网站的索引。 喜欢这个: http://example.com/anypage.asp?anyvar=anyvalue 至: http://example.com/ 这是一个真实的例子: http://atipico.com.br/conteudo.asp?P_categ=23 我试图按照这个: http : //wiki.nginx.org/NginxHttpRewriteModule#rewrite (评论是我的尝试): location ~ /conteudo\.asp(.*)$ { #rewrite ^ / permanent; #rewrite ^ /? permanent; #return 301 /; #return 301 /?; #if ($args) { return 301 /; } } 它总是重写为http://atipico.com.br/?P_categ=23 有任何想法吗?
将此URL映射到此文件系统path的最佳方法是什么? 从 http://site.com/200×300/ed3269d0-f9ef-4ffc-abea-5982969876c0/my file.jpg 至 /var/www/e/d/3/ed3269d0-f9ef-4ffc-abea-5982969876c0/200×300.jpg 哪里 “200×300”是图像的大小 “ed3269d0-f9ef-4ffc-abea-5982969876c0”是图像的guid “我的文件”是文件的名称(用于SEO,可能包含空格) “e”,“d”和“3”是guid的前3个字母 “.jpg”是该文件的扩展名
我只想服务器对特定域的请求,只是放弃其他所有的东西或给它404。宁愿看到它通过nginx完成,但当然会喜欢最好的解决scheme。
我已经build立了一个Web服务器来查看我的存储库(一个Gitalist实例)在http:// localhost:3000 ,我想用nginxbuild立一个代理。 我希望当接收到像DOMAIN / git /这样的URI时,请求会被代理到我的存储库视图中。 我现在的nginxconfiguration已经被声明如下: location /git { proxy_pass http://localhost:3000/; } 请求代理服务器,但没有一个图像/链接或CSS可以解决,因为他们指向“ http:// localhost:3000 / logo.png ”例如。 编辑 如果我proxy_pass到实际的服务器地址它的工作: location /git { proxy_pass http://192.168.1.111:3000/; } 但是在代理时应该有一种隐藏实际服务器地址的方法。
这似乎是一个简单的问题,但经过一些谷歌search,我似乎无法find答案。 我有一个登台服务器,我想尽可能模仿生产服务器。 假设我拥有example.com并决定使用blog.example.com托pipe博客。 我希望能够在使用暂存地址blog.stage.example.com将其推送到生产之前对博客进行blog.stage.example.com 。 我宁愿这样做比购买另一个域,如stage-example.com或使用命名约定,如blog-stage.example.com 。 很显然,我想让blog.stage.example.com指向在临时环境(例如IP 1.1.1.1)上运行的服务器,而blog.example.com指向在生产环境中运行的服务器(例如IP 2.2 2.2)。 我使用Nginx作为我的networking后端,并将Gandi作为托pipe提供商pipe理我的DNS区域文件。 是否可以使用多级子域configuration我的域名? 或者,我是否坚持命名约定,如blog-stage.example.com ? 或者,也许有一个更好的方法来pipe理这个我不知道的? 如果可能的话,DNS区域文件是什么样的? 最后,如果可能的话,Nginxconfiguration文件将是什么样的?
我试图拒绝访问我们的网站上运行的Nginx上的特定url,但允许从特定的IP,我一直试图绕开使用位置,但似乎只是试图find一个合适的目录,而不是URL。 这是我想出的,但只是给404回报。 location /specificurl { root /var/www/site1.com/current; allow 123.123.123.123; deny all; }