我是Nginx重新编写的新手,希望获得工作和最小的重写代码方面的帮助。 我们希望在广告系列材料上使用诸如“somecity.domain.com”之类的url,并将结果转到“www”网站中的城市特定内容。 所以,这里是用例,如果客户input: www.domain.com (stays) www.domain.com domain.com (goes to) www.domain.com www.domain.com/someuri (stays the same) somecity.domain.com (no uri, goes to) www.domain.com/somecity/prelaunch somecity.domain.com/landing (goes to) www.domain.com/somecity/prelaunch somecity.domain.com/anyotheruri (goes to) www.domain.com/anyotheruri 这是我到目前为止所做的,部分工作。 我不明白的是如何检查主机后是否没有path/ URI,我猜可能有更好的方法来做到这一点。 if ($host ~* ^(.*?)\.domain\.com) { set $city $1;} if ($city ~* www) { break; } if ($city !~* www) { rewrite ^/landing http://www.domain.com/$city/prelaunch/$args permanent; […]
就我所见,Nginx默认支持2个日志文件: error_log (跟踪与Nginx服务器本身相关的问题)和access_log (跟踪由Nginx处理的请求)。 尽pipe可以通过log_format指令来控制access_log的格式,但是我找不到一种只将某些请求logging到一个单独文件的方法,因此我想问一下SF上的问题作为未来读者的参考: 有没有办法将某些请求logging到与access_log定义的日志文件不同的日志文件? 仅供参考,这个问题背后的原因是,我有一个规则,拒绝访问200(因为403会给他们一个提示,他们被阻止)不受欢迎的抓取工具,并从access_log过滤这些请求变得更加困难。
我已经search了一段时间这样做的正确方法。 在https服务器上请求不存在的文件时,redirect到http服务器并请求相同的文件。 例如。 https:// example.org/some_missing_file.html – redirect – > http:// example.org/some_missing_file.html https:// example.org/existing_file.html – 提供文件 https:// example.org/SomeDir/missing_file – redirect – > http:// example.org/SomeDir/missing_file https:// example.org/SomeMissingDir/ – redirect – > http:// example.org/SomeMissingDir/missing_file 这如果基于片段的作品 listen 443 ssl; #… more config if (!-e $request_filename) { rewrite ^ http:// example.org$request_uri permanent; break; } 但是“如果是邪恶” – http://wiki.nginx.org/IfIsEvil 所以这是我试图在try_files版本 – 这是行不通的。 […]
由于更新我的nginx服务器只能通过IPv6而不是IPv4,而我的configuration包含 listen [::]:80 default_server; 现在我已经改变了 listen [::]:80 default_server ipv6only=off; 并且服务器再次通过IPv4可用。 这是由于nginx 1.3.4(“使用nginx 1.3.4进行更改”)中的更改所致。 因为我在同一个mashine上有多个服务器configuration,所以我想ipv6only=off全局设置ipv6only=off有没有可能这样做?
在我们的年度安全审查中,我想起了今年早些时候发生的一个事件,那就是我们的组织Web服务器受到了威胁。 这是一个组织的政策,并威胁到DDoS我们的网站。 幸运的是,这并没有什么不好,事实certificate这是一个空洞的威胁。 但是,我们仍然立即通知了CIO,CSO,首席执行官和我们的托pipe服务提供商,他们为我们的答复鼓掌。 由于我们组织(教育)的性质,先发制人的响应涉及许多人,包括与当地执法机构的协调。 尽pipe我们的回应足以应付一个空洞的威胁,但这让我意识到,如何规划networking应用程序的攻击已经发生了。 现在的设置是: 不在企业防火墙之后的Linode VPS(背后有一个很长的故事,不值得解释) 一个只允许本地连接的同一台服务器上的PostgreSQL数据库 一个Nginx服务器,我们目前正在遵循最佳实践来保证[ 1 ] 我们正在迁移到证书authentication的SSH访问 备份VPS,具有所有最新的服务器设置,只需要最新版本的代码推送和数据库设置迁移(现在用作testing服务器,但也设想为georedundancy选项) 我想我的问题可能可以归结为我应该采取什么其他步骤来locking我的服务器,以及防止DDoS? 我们很乐意使用Cloudflare业务,提供DDoS防护,但我们并不总是需要它,每个月200美元对于组织来说有点陡峭。 我甚至需要这个吗? 是否有解决scheme,允许临时DDoS保护? 如果不是,在攻击期间/之后维持稳定的最好方法是什么? 最后,应该执行什么样的日志logging,以便在发生攻击时协助执法工作?
我怎样才能防止Nginx缓冲我的uwsgi应用程序的输出? 对于我的彗星风格应用程序,我正在使用长轮询,现在请求被缓冲。 我试图减小缓冲区的大小,但是我不允许将uwsgi_buffer_size和uwsgi_buffers设置为0.另外, uwsgi_max_temp_file_size不起作用(尽pipe手册提示)。 我怎样才能做到这一点?
我最近发布了这个命令: find . -type f | wc -l find . -type f | wc -l 要统计我的public_html文件夹中有多less个文件。 不久之后,Nginx返回了500个内部服务器错误,并且error.log被“太多打开的文件”错误淹没。 我想也许这可能是这个问题的根源呢?
我的Nginx反向代理与webserver(apache)在同一台机器上工作如下 server { server_name site.net; location / { proxy_pass http://localhost:82; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 现在,而不是使用TCP连接到后端apache,我怎么能调整它使用unix套接字? 编辑: 有人可以帮助完整的stream程,指示Apache也听取unix套接字
我的服务器运行CentOS:Nginx + PHP-FPM(PHP通过Fast-CGI)。 每个站点都是独立的VirtualHost。 目前Nginx和PHP-FPM都是在root下运行的。 我知道这是不好的做法,没有理由让任何网站有权访问自己的目录之外的文件。 我将如何去创build监狱用户并指示nginx && php-fpm相应地播放?
目标是让PHP知道正确的面向web的server_port。 设置是: 在端口443上的nginx反向代理到在端口80上的清漆反向代理到在端口8008上的nginx并运行php-fpm作为fastcgi。 击中80或443都工作正常,除了$ _SERVER ['SERVER_PORT']在PHP总是显示8008默认情况下。 我可以硬编码一个fastcgi_param server_port,但它只会是正确的80或443,但不是两个。 # default fastcgi_param SERVER_PORT $server_port; # harcode to 80 fastcgi_param SERVER_PORT 80; 我怎样才能得到正确的面向外部的服务器端口可用于PHP?