Articles of nginx

Nginx:Syslog输出错误位置的标签

我试图在FreeBSD jails中将多个Nginx服务器的日志输出到jails的主机上。 我使用的是FreeBSD 10 syslog和Nginx 1.7.10。 在Nginx(在这种情况下,主机名是web )我已经设置: access_log syslog:server=127.0.0.1:514 syslog; http://nginx.org/en/docs/syslog.html 在主机的syslog.conf : +web *.=info /var/log/jails/web/nginx-access.log 在主机的rc.conf : syslogd_flags="-a 10.0.0.1/24:* -v -v -C" 我的文件中的输出是 Mar 31 19:45:50 <local7.info> web web nginx: […] 我的问题是,我想在Nginx中指定标签来区分几个服务器。 根据syslog.conf的FreeBSD文档 如果接收到的消息与指定的设备相匹配并且是指定级别(或更高级别),并且消息中的第一个字符与该程序匹配,则会执行操作字段中指定的操作。 https://www.freebsd.org/cgi/man.cgi?query=syslog.conf&sektion=5 但我的输出是hostname hostname hostname hostname tag / program 。 所以试图在syslog.conf指定程序/标签(如!nginx )不起作用。 有没有办法在FreeBSD的syslog上捕获标签? 这是Nginx 1.7.10中的一个错误吗?

负载为0,但网站爬行(有时)。 是什么赋予了?

我有两个服务器上运行的每天约1.5-2毫米的页面浏览量。 一个用于mysql,其他用于其他。 Mysql框的负载为3,前端通常为0.0-0.1。 双方都是双核四内核8GB ram在raid5中运行SAS驱动器。 CPU大部分时间处于空闲状态,iowait不存在。 我运行nginx,memcache和网站build立在PHP。 有一半的时间一切运行完美,而在其他时候,它滞后于严重的东西,当一个页面加载需要10-15秒。 页面执行时间总是超低的,但是它似乎挂起来,在实际加载页面之前等待一些东西。 更奇怪的是,它只发生在网站上的一个文件(但它是最常访问的那个,实际上加载网站上的内容)。 其他页面在任何时候都非常快,即使加载实际内容需要15秒。 我已经安装了nginx_stats插件,如果我监控它,当写列开始超过100时会发生滞后尖峰,而且它经常会…一直到500-1000。 它是在完全随机的时候这样做的,而不是在交通繁忙的时候……它可以在半夜做到这一点,并在交通最高时在下午5点完成工作。 有任何想法吗?

Nginx作为只有dynamic内容的Apache的反向代理?

在Apache之前运行Nginx作为反向代理服务PHP似乎被普遍认为是好的做法。 使用CDN提供所有静态资源(images / css / js)时,情况仍然如此吗? 很显然,为静态文件提供服务是Nginx的主要优势之一,但是它仍然值得运行,只有dynamic请求才是缓冲客户端的缓冲区。 谢谢, 伊恩

如何只运行脚本如果负载平衡器不通过bash脚本路由请求到它?

我有4个云实例。 首先是一个负载均衡器(LB),然后使用相同的设置保存应用程序代码(APP1&APP2)的两个实例。 最后,我有一个数据库实例(DB)。 DB:MySQL Web服务:Nginx LB将只将所有请求路由到APP1。 如果APP1closures,则LB将把请求路由到APP2。 我想写一个shell脚本,只有当LB没有路由请求时才会执行它。 所以,我将在APP1和APP2上都有一个名为run.sh的脚本。 当且仅当LB将请求路由到APP1时,APP2上的run.sh将通过cron执行。 任何想法如何我可以弄清楚,从APP2,如果LB是路由请求到它?

redmine安装后会出现404错误

我正在用nginx和mysql使用Debian压缩。 在耙db和加载默认数据redmine之后。 当我尝试在浏览器中访问redmine时, http://ipaddress:8080/redmine ,我得到一个404错误 Page not found The page you were trying to access doesn't exist or has been removed. 我的nginxconfiguration文件如下: server { listen 8080; server_name localhost; server_name_in_redirect off; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm index.php; } location ^~/phpmyadmin/ { root /usr/share/phpmyadmin; index index.php; include fastcgi_params; fastcgi_pass […]

如何修复Sinatraredirect从nginx下的https切换到http?

我有一个运行在nginx中的Sinatra应用程序(使用thin作为后台代理),并在Sinatra中使用redirect '/<path>'语句。 但是,当我通过https访问站点时,这些redirect将他们发送到http://localhost/<path>而不是https://localhost/<path> 。 目前,nginx使用此命令proxy_pass http://thin_cluster将控制proxy_pass http://thin_cluster控制为精简,其中thin_cluster是 upstream thin_cluster { server unix:/tmp/thin.cct.0.sock; } 我怎样才能解决这个问题?

nginx PHP文件404

我正在使用我的nginx / php-fastcgi安装在PHP文件中找不到404。 我已经尝试了在不同的地方声明根的几个变种,但无法find一个有效的,我怀疑这是与它有关的事情。 这里是我的configuration文件,任何人都可以看到什么可能是错误的/失踪? 我的nginx.conf; worker_processes 1; error_log /opt/local/var/log/nginx/error.log; pid /opt/local/var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type text/html; sendfile on; keepalive_timeout 65; passenger_root /opt/local/lib/ruby/gems/1.8/gems/passenger-3.0.7; passenger_ruby /opt/local/bin/ruby; server { listen 80; server_name localhost; root /Users/foo/Sites; location / { root /Users/foo/Sites; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location […]

切断现场HTTP分段video的configuration

我正在尝试为networkingcachingfind最优化的机器configuration,以便为几千个并发观众提供HTTP分段video。 内容由定期更新大小为几个字节(100-500字节)的文本文件(称为清单)和大小为数千字节(52,000-250000字节)的一组video段文件组成。 我的安装程序有一个实时video源服务器,将这些文件放到启用WebDAV的服务器(这将是一个适当configuration的Apache或Nginx)。 我想用这个标准的硬件和开放源代码软件为用户提供服务。 我的问题是: 我正在考虑将Nginx + Varnish组合在我的边缘caching中。 这听起来合理吗? 什么是一个好的机器configuration? 我正在考虑在RAID5和24GRAM,1个四代码CPU的3X2TB 7200RPM硬盘。 这对清漆有好处吗? 是否有一个特定的参数,我需要优化,以获得最佳的清漆? 在HA对中设置清漆是否有意义,或者通常是独立设置的?

为什么如果我调用“远程页面”,样式表会被忽略?

我正在玩node.js,现在。 我很喜欢。 我有一个奇怪的错误。 如果我启动testing服务器 node app.js 并导航到http:// localhost:3000 ,一切都很好。 样式表被加载,所有东西看起来都是应该的。 但是,如果我通过nginx导航到网站,网站和样式表被加载,但似乎被忽略。 这是相同的源代码。 它以相同的方式parsing。 而且我已经testing过,样式表已经正确加载了。 我真的不知道了。 还有谁? 这是我的nginx vhost-config: server { listen 80; server_name expressapp.lc; root /home/matthias/Documents/webapps/expressapp/public; location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { expires 15d; } location / { proxy_pass http://127.0.0.1:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_redirect off; } gzip on; […]

如何减less在php-fpm下运行的Nginx任务?

什么是Nginx的Apache mod_php等价物? 我有Nginx与PHP的FMP。 一切都是完美的,但问题是,它的工作原理就像Apache而不是mod_php中的fcgi。 这意味着为每个添加的主机添加一个任务。 我有50几个静态页面和stream量可以忽略的主机,但我有一个php5-fpm任务,每个使用大约25M的RAM。 因此,我有2个运行任务和50多个使用1GB内存的睡眠任务。 由于每个主机都有其自己的任务,因此fcgi对于安全的原因是有用的; 但是在一个单用户的服务器中,mod_php会保存RAM,因为所有的任务都是在apache用户下运行的。 我怎样才能做到这个Nginx?