Articles of nginx

Nginx代理CMS的网站预览多个IP地址

第一次的海报,所以忍受着我。 我对Nginx相对来说比较陌生,但是设法弄清楚了我所需要的东西……直到现在。 Nginx v1.0.15代理到PHP-FPM v.5.3.10,它正在http://127.0.0.1:9000上监听。 [敲木头]一切运行顺利,在托pipe我们的CMS和许多网站。 现在,我们已经开发了我们的CMS并configuration了Nginx,使得每个支持的网站都有一个预览url(例如http:// [WebsiteID] .ourcms.com / ),您可以预测网站的位置, DNS尚未parsing到我们的服务器等。 具体而言,我们使用Nginx的Map模块( http://wiki.nginx.org/HttpMapModule )和CMS的server_name中的server_name中的正则expression式来1)从其预览URL中查找网站的主要域名,然后2)将请求转发到“匹配的”主域。 相应的Nginxconfiguration: map $host $h { 123.ourcms.com www.example1.com; 456.ourcms.com www.example2.com; 789.ourcms.com www.example3.com; } 和 server { listen [OurCMSIPAddress]:80; listen [OurCMSIPAddress]:443 ssl; root /var/www/ourcms.com; server_name ~^(.*)\.ourcms\.com$; ssl_certificate /etc/nginx/conf.d/ourcms.com.chained.crt; ssl_certificate_key /etc/nginx/conf.d/ourcms.com.key; location / { proxy_pass http://127.0.0.1/; proxy_set_header Host $h; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } […]

如何在Nginx上检查Cookie标题行和自定义caching

我试图caching我的网站使用Nginx代理模块,并具有以下要求: 如果请求有Cookie(在请求标题中) 响应将使用Nginx的caching 隐藏Set-Cookie标题行 如果请求没有cookie(在请求头中) 前端请求后端 不要隐藏h Set-Cookie标题行 我使用If(重写模块)和任何指令: if (!-e $http_cookie) { set $not_cache_rq 0; set $not_cache_rp 0; } if ($http_cookie) { set $not_cache_rq 1; set $not_cache_rp 1; } proxy_cache_bypass $not_cache_rq; proxy_no_cache $not_cache_rp; proxy_hide_header Set-Cookie; 我不知道如何调用cookie proxy_hide_header选项,当有cookie和没有cookie标题行。 请帮帮我。 非常感谢。 ==== 大家好 我pipe理客户的网站。 如果设置了cookie,所有请求和响应都包含Cookie标题行。 如果响应被caching。 caching将是所有客户端的Nginx返回,并且Set-Cookie标题行将使所有用户共享一个cookie值(这个值是会话,它对于每个用户必须是不同的)。 我想如果用户没有会话(即没有cookie存在 – 请求标题行将不具有Cookie行),请求将被推入到后端(apache)进行处理,并返回到用户的cookie。 如果用户已经有会话(即请求行中有一个cookie),那么Nginx将返回caching,caching中没有Set-Cookie行) 非常感谢!

非标准端口上的Nginx虚拟主机不能正常工作

我试图使用清漆作为Nginx的前端代理。 当我尝试使用以下作为我的虚拟主机configuration: server { listen 8080; server_name playwithbits.com www.playwithbits.com; # limit_conn limit_per_ip 16; # ssi on; access_log /home/nginx/domains/playwithbits/log/access.log combined buffer=32k; error_log /home/nginx/domains/playwithbits/log/error.log; root /home/nginx/domains/playwithbits/public; location / { # Enables directory listings when index file not found #autoindex on; # Shows file listing times as local time #autoindex_localtime on; # Enable for vBulletin usage WITHOUT vbSEO […]

系统日志消息“^ @”表示服务器崩溃

php-cgi的死于一个vps我照顾和唯一的系统日志条目是这个,然后我重新启动虚拟机: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@Jun 13 22:00:34 VM syslogd 1.5.0#5ubuntu4: restart. 之前的一切似乎都很好,php日志里没有任何东西,即使php超时是最明显的症状(nginx正在返回504s),任何想法如何debugging? 谢谢, 乔恩

使用Nginx 1.2.1无法安装Phusion Passenger 3.0.13

我安装了安装3.0.13的gem Passenger。 然后我执行了passenger-install-nginx-module,这是http://www.modrails.com上的Nginx指令所说的。 根据Nginx官方wiki页面安装最新的稳定版本1.2.1。 我说要安装Nginx到/ usr / local / nginx(这是默认的,如果你去nginx维基网站)。 我得到以下错误: Undefined symbols for architecture x86_64: "_pcre_free_study", referenced from: _ngx_pcre_free_studies in ngx_regex.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[1]: *** [objs/nginx] Error 1 make: *** [build] Error 2 ——————————————– It looks like something went wrong Please read our […]

静态文件服务只适用于root是公共下的子文件夹

我正在尝试使用nginx来提供静态caching文件。 在rails_root/public/cache目录下有index.html文件。 我首先尝试了下面的configuration,这不起作用: root <%= current_path %>/public; try_files /cache$uri/index.html /cache$uri.html @rails; 这给错误: [error] 4056#0: *13503414 directory index of "(…)current/public/" is forbidden, request: "GET / HTTP/1.1" 我然后尝试 root <%= current_path %>/public/cache; try_files $uri/index.html $uri.html @rails; 而令我惊讶的是这个作品。 为什么我可以做后者而不是前者(因为他们指向同一地点) 文件系统的权限 这些文件夹的权限是: 775 public 755 cache 644 index.html Rails坐在用户目录下,所以文件夹和文件都属于用户good 。 nginx的用户对于每个工作处理器来说是master和http root : 89:http 7865 0.1 0.0 8876 2624 […]

通过多个nginx后端应用程序路由单个请求

我想知道是否有类似下面的情况: Nginx处理一个请求并将其路由到某种authentication应用程序,在这个应用程序中解释和validationcookie和/或其他types的安全标识符。 该应用程序可能会添加一些附加的请求(追加validation头)。 失败的authentication返回一个HTTP 401。 然后Nginx接受请求并通过一个授权应用程序进行路由,授权应用程序根据身份和HTTP动词(put,delete,get等)和URL,确定actor / agent / user是否有权执行预期的行动。 例如,授权应用程序可能通过追加另一个标头来修改请求。 失败的授权返回403。 (清洗,冲洗,以任何方式重复代理模式,以便以某种方式参与请求。 最后,Nginx将请求路由到请求被检查的实际应用程序代码中,并根据所讨论的URL执行所请求的操作,并且通过查看被改变的HTTP请求,应用程序可以捕获和理解用户的身份。 理想情况下,Nginx可以在本地或通过插件来实现。 有任何想法吗? 我考虑过的另一种方法是让Nginx将初始请求交给authentication应用程序,然后让这个应用程序通过代理将请求返回给Nginx(无论是在同一个盒子还是另一个盒子上)。 我知道有很多应用程序框架(Django,RoR等)可以在进程中做很多这样的事情,但是我试图让事情变得更加通用和自包含在不同的应用程序可以“挂钩“Nginx的HTTPpipe道然后参与,短路,甚至相应地修改请求。 如果Nginx无法做到这一点,是否有人知道其他networking服务器将以上述方式执行?

SVN和“精简版”Web服务器

我打算设置和configurationSVN服务器。 考虑一下'lite'web服务器,比如nginx或者lighttpd。 AFAIK nginx只有有限的DAV支持,并没有SVN模块本身。 这是正确的信息? 如果是的话lighttpd呢? SVN可以用lighttpd正确configuration吗? 请告诉你有谁的经验。 什么是最好的解决scheme。 谢谢。

(nginx – > uwsgi – > wsgi应用程序)体系结构中的IPC开销?

最近我正在build立一些Python网站,看来架构nginx -> uwsgi -> wsgi application在Python世界中是一个显而易见的select。 (其实我正在将一个由Apache + mod_wsgi支持的MoinMoin网站迁移到一个运行nginx的新VM上,所以我花了一些时间来看看nginx支持的部署可能性。) 我已经读了很多关于为什么需要这样的间接层,我完全知道,涉及到的各种技术 – nginx,uwsgi和wsgi – 都是现代的,function非常高,性能非常高,到今天为止都是成熟的。 但是由于在这样的体系结构中有两层IPC( nginx -> uwsgi和uwsgi -> wsgi application ),我一直在想 IPC如何影响整体performance? 是否具有足够的影响力,具有实际意义? 我search了一下,发现没有直接的答案。 那么IPC的开销是否足够小,或者我没有find正确的关键字? (顺便说一下,我读到Erlang社区已经生成了几个HTTP服务器,直接将用户的HTTP请求传送到应用程序代码,并且性能也非常高,我search了一下,但是找不到比较这两种方法的基准)

如何使用Unicorn加载环境variables

我似乎无法让我的服务器加载环境variables。 在我理想的设置中,我希望1个用户(部署者)在单个服务器上提供多个应用程序。 Ubuntu 12.04,Nginx,Unicorn。 在我的应用程序中,我有一个包含应用程序所需的所有环境variables的.env文件。 这是我失败的尝试: 我用特殊的shell脚本启动独angular兽。 我不能在这里使用源代码,所以我不知道如何加载其中的环境variables。 #!/bin/sh ### BEGIN INIT INFO # Provides: unicorn # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Manage unicorn server # Description: Start, stop, restart unicorn server for a specific application. ### END INIT INFO […]