这是我的configuration文件nginx允许它只响应domain1.com,而不是domain2.com server { server_name .domain1.com; root /var/www/; #charset koi8-r; #access_log logs/host.access.log main; location / { 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_pass http://127.0.0.1:3000; proxy_redirect off; } } 但是,这仍然在domain2.com上侦听。 我在这里错过了什么? 任何帮助表示赞赏。
我遇到了一个奇怪的问题,我不确定这是一个configuration问题还是nginx中的一个错误。 我的设置是一个具有Apache2后端服务器的nginx反向代理。 负载平衡器非常基本,类似于wiki的例子 ,例如简化: http { upstream myproject { server 127.0.0.1:8000; } server { listen 80; location / { proxy_pass http://myproject; } } } 现在,当我尝试在Apache中请求一个目录时,出现了一个问题,例如在URL末尾没有结尾的斜线。 例如,客户端请求: http://apache.myserver.com/somedirectory Apache将回复一个HTTP 302redirect客户端 http://apache.myserver.com/somedirectory/ 请注意,最后注意到它是一个目录的url有一个斜线。 还要注意,通过在redirect头中使用传入的请求主机名,Apache是“聪明的”。 迄今为止都很好。 但是,当使用nginx进行负载均衡时,会将301发送到客户端,而不会将nginx上游名称转换回实际的服务器/域。 所以客户将收到以下内容: GET http://nginx.myserver.com/somedirectory HTTP 301 Moved Permanently … Location: http://myproject:8000/somedirectory/ myproject是nginx上游后端的名称。 它不是客户可以解决的实际主机。 在我看来,客户应该被redirect到 http://nginx.myserver.com/somedirectory/ 即上游后端的名称应该在响应头中被replace。 这是一个在Nginx的错误,或者我做错了什么?
现在,越来越多的网站正在使用前端的nginx和后端的Apache(或者另一个web服务器比Apache更好地服务静态媒体)来切换到一个设置,我想知道以下几点: 将静态媒体放在专用服务器上(运行nginx),而不是在Apache前面运行nginx是否合理? 我不是在谈论预算,维护等(我知道运行2个服务器比运行1更昂贵)。 我的意思是: 你将如何完全优化一个专门提供静态文件的系统? 在硬件和软件层面上可以做哪些事情来优化静态文件,这些静态文件在运行Apache的系统上无法完成?
我希望所有位于/ media /缩略图下的URL都是从磁盘提供的,如果该文件不存在,则从另一台服务器,但不redirect客户端。 我相信这应该工作,但我找不到有什么问题: location /media/thumbnails { try_files $uri @thumbnail_generator; } location /media { root /home/plinio/nginx_test; break; } location @thumbnail_generator { proxy_pass http://127.0.0.1:8081/media_generate$uri; } 即使在创build/home/plinio/nginx_test/media/thumbnails/test.txt文件之后,对/media/thumbnails/test.txt的请求仍在内部redirect到@thumbnail_generator。
我一直在Drupal 7网站进行基准testing,发现apache的页面执行速度比我创build的Nginx慢四倍。 由于这是页面执行时间,我的理解是,在执行完成之前,不会有其他任何页面资源请求,所以不太可能是由多个请求处理的方式引起的(我还应该提到,这些testing服务器只能被访问我)。 我尝试设置PHP-FPM与Apache一起工作,将其排除为可能的因素,但它只对约2%的页面执行时间产生影响。 每个服务器都运行Ubuntu 11.10,软件来自PPA,安装后只有最less量的configuration更改才能使服务器显示Drupal。 据我所知,这是我应该期待与这种设置相反。 Apache应该有一个优势,因为它不需要呼叫到外部服务,但是我看到的结果是大规模偏向于nginx。 有没有我看到的结果的任何解释? 有人可以提供我如何去确定原因的提示吗?
我今天突然遇到了MySQL问题。 细节: 操作系统:CentOS版本5.7 服务器types:运行在中等DV 4.0包上的Parallels virtuozzo容器 平均总内存使用量:<500MB 允许的总内存使用量:1GB(部分共享池只用于紧急情况,用户只能保证500MB) 处理器:> 1ghz 主要数据库大小使用最多:275MB和107MB 服务器堆栈:nginx 1.0.10,mysql 5.1.54,php 5.3.8和php-fpm innodb_buffer_pool_size = 100M php-fpm最大的孩子:5 Webapps:自定义的基于php的网站,magento和drupal 慢查询超时设置为1秒 我完成了诊断的步骤: 现在还不能重启容器 – 我今晚晚些时候我们国内的stream量会下降 启用mysql和php-fpm slowlog。 在php-fpm slowlog中发现数据库查询的函数时间超过1秒 在mysql slowlog中发现了一些简单的查询,花费1秒以上完成应该less于1秒。 最有趣的是 – 执行时间似乎有时会激增。 一个查询将花费几秒钟的时间,然后一次花费8秒来运行相同的查询。 这些结果已经通过mysql命令行运行原始SQL查询来validation。 顶部没有透露任何有趣的事情 只有资源相关的东西,我可以看到负载平均比正常高得多 直到今天,mysql已经很好,自从昨天以来,db一直没有大的变化。 有时候,事情太糟糕了,在60秒的执行时间之后,我看到了错误的网关错误。 Innodb的平均读取速度为300-1400次/秒。 Mysql正在做3-10查询/秒 在2小时内查询计数慢,正常运行时间为171(在1秒内缓慢超时) 试图重新启动mysql,nginx,php-fpm多次 例如: UPDATE `catalogsearch_query` SET `query_text` = 'EW 90', `num_results` = '7532', […]
我得到当前安装了两个应用程序的服务器,我需要添加另一个,这里是我的configuration。 nginx.conf user www-data www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Disable unknown domains ## server { listen 80 default; server_name _; […]
我已经build立了nginx(下面的nginx.conf)和瘦。 nginx和瘦(2服务器)都在运行(我检查他们正在运行)。 我可以在rails公共目录(如index.html)中访问一个静态页面,但是如果我放入任何其他的url,我会得到一个由nginx生成的500页,“我们很抱歉,但出了问题。 任何帮助我做错了赞赏。 我想能够访问rails应用程序。 http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 30; #gzip on; # Load config files from the /etc/nginx/conf.d directory # The default server is in conf.d/default.conf include /etc/nginx/conf.d/*.conf; […]
这是设置。 我有一台服务器运行Apache / PHP托pipeownCloud。 除此之外,我正在使用CardDAV联系人同步。 为了使我的域名与我的域名一起工作,我在前端运行了一个nginx服务器,作为ownCloud服务器的反向代理。 我的nginxconfiguration如下: server { listen 80; server_name cloud.mydomain.com; location / { proxy_set_header X-Forwarded-Host cloud.mydomain.com; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 0; proxy_redirect off; proxy_pass http://server; } } 问题是,当我的手机在服务器上做一个PROPFIND时,nginx添加额外的字符到内容主体,把手机closures。 具体来说,它前面的d611\r\n在身体的前面,并附加0\r\n\r\n到内容的末尾。 (我从wireshark那里得到了这个)。它也重组了结果。 如何让nginx发送原始内容?
我得到了关于服务器的nagios严重警告,当我检查ps -aux发现所有的nginx(php-fpm)都在不间断的睡眠中 www-data 1330 0.4 0.3 299992 108560? D 16:06 0:16 php-fpm:pool www www-data 1338 0.4 0.2 254728 92728? D 16:06 0:16 php-fpm:pool www www-data 1346 0.4 0.3 293544 100272? D 16:06 0:17 php-fpm:pool www www-data 1356 0.7 0.3 302504 101532? D 16:06 0:29 php-fpm:pool www www-data 1357 0.3 0.2 270672 85952? D 16:06 0:13 […]