Articles of nginx

访问代码304:从主机访问vmware中的nginx

我已经成功安装了使用nginx的gitlab(感谢这个线程: gitlab安装:使用本地主机 )。 我可以在本地主机上运行软件(http:// localhost会让我到gitlab的首页)。 所有这些都在一个虚拟软件。 我已经尝试将主机666端口映射到vmware ngnix 80端口。 所以,去http:// localhost:666应该会给我的gitlab的首页。 问题是:我只得到“欢迎使用nginx!” 页。 这是我的访问日志看起来像: 10.1.17.74 – – [25/Mar/2013:00:24:59 -0700] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22" – ls -l /etc/nginx/sites-* 产生 /etc/nginx/sites-available: total 8 -rw-r–r– 1 root root 2496 2011-02-25 19:20 default -rw-r–r– 1 root […]

从负载均衡器到上游服务器的encryption隧道。 SSH与SSL?

我们正在用两个负载平衡器(也可以终止SSL)和多个上游服务器构build一个负载均衡设置。 负载均衡器和上游服务器都运行nginx。 请求转发到上游服务器的networking不能被信任,因此我们必须在负载平衡器上的SSL终止之后重新encryption它。 我们想知道我们应该采取什么样的路线来重新encryption连接: SSL:负载均衡器使用SSL连接到上游服务器。 积极的:相当有弹性,因为每一个连接都是从头build立起来的 负面:SSL握手延迟 持久的SSH隧道 正面的:没有(或更less?)延迟 负面:隧道可能会崩溃,必须使用autossh进行监控 另外,我不确定两种解决scheme在吞吐量上的比较。 有人对这些解决scheme中的一个或两个有一些经验吗? 还是有更好的方法?

nginx auth_basic错误:未find用户,也没有提供用户/密码

我已经在Nginx中设置了auth的基本function,并且阻止了其他的ips: location / { auth_basic "Restricted Area"; auth_basic_user_file .htpasswd; allow 127.0.0.1; deny all; } 我可以使用.htpasswd提供的username/passwordlogin,但nginx中的错误日志显示如下错误: user "memcache" was not found in "/etc/nginx/.htpasswd" no user/password was provided for basic authentication 任何build议,为什么会发生这种情况,如何摆脱它?

Nginx的open_file_cache

我注意到open_file_cache有一个有趣的问题。 基本上,我有一个Perl脚本更新页面。 我注意到,在这个页面上的open_file_cache将保持不变,我认为是open_file_cache_valid设置。 这似乎是不应该发生的,因为Nginx的文档指出caching只存储这个信息: http://wiki.nginx.org/HttpCoreModule#open_file_cache 打开文件描述符,信息的大小和修改时间; 关于目录的信息 search文件时的错误信息 – 无文件,无权读取等。另请参见open_file_cache_errors 整个页面看起来像caching除了修改时间等? 以下是我所看到的以下设置的详细信息: open_file_cache max = 1000 inactive = 60s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors on; 我运行perl脚本来更新页面,并用ls来查看文件: ls -lh index.html -rw-r -r– 1 apache apache 81K 3月27日12:32 index.html Nginx并没有更新这个页面,并且它在60秒内保持不变: Last-Modified:Wed,27 Mar 2013 16:19:46 GMT 一分钟后,我刷新,它终于改变。 这个文件没有其他的caching设置,所以open_file_cache字面上只是caching整个事情? 我可以减lessopen_file_cache_valid或者达到目的吗?

PHP的FPM或Nginx的封顶?

我使用blitz.io基本上爆炸我的网站与stream量,看看我的“学习系统pipe理员”如何在负载下举行。 我意识到这与现实世界一样有效或与大锤相关,但当我改变设置时,我真的只想看到一个比较。 我的设置按通信顺序(全部在Amazon EC2上),亚马逊Linux AMI 1个亚马逊弹性负载均衡器 两个Nginx服务器,上游… 1个Php-fpm服务器(很快就是2个)。 连接到… 1个RDS mysql服务器 一切都落后于VPC 对于我的testing,我所服务的网站是使用W3 Total Cache的Wordpress安装。 本来我只有1x Nginx + 1x Php-fpm(暗含1x Rds),都是微服务器。 我相信我得到850 req / sec,然后才开始大量超时(times> 1000ms)。 在此期间,CPU在phpfpm和nginx上都达到了100%。 所以.. 然后我添加了第二个nginx服务器。 之后,我将两个nginx服务器都转换为“大”,同时将php-fpm转换为“大”。 我把我的php-fpm设置乘上了5倍,而令我惊愕的是testing几乎完全相同……这次唯一的区别是CPU和内存在所有3台服务器上都达到了5%左右。 这就像几乎没有任何资源被使用。 我查看了我的日志中的错误,并没有真正看到太多… 我已经看了很多次我的设置,我知道我错过了一些巨大的… WordPress的部分的网站内容可以完全可以…如果我更新任何东西,我会清除caching。 Theres下半部分我的网站,但它的所有静态内容,没有数据库查询。 我使用一个PHP的“加载器”脚本,从包含文件中加载各种内容,但是这是非常轻量级的。 我听说过有关ulimit或者更确切地说..可能是一个问题? 我正在尝试在1分钟内做6000个用户 我的configuration 服务器1:Nginx nginx.conf user www www; worker_processes auto; events { worker_connections 1024; } error_log /var/log/nginx/error.log warn; […]

NGINX位置子句仅用于根域

如何在example.com上点击$request_filename ~ /sub1时只redirectsub1.example.com 。 例如,如果我在sub1.example.com ,击中/sub1不会redirect我也sub1.example.com ,而是实际的页面sub1.example.com/sub1 ? 我的NGINXconfiguration: server { server_name .example.com; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; root /var/www/html/example; index index.php; location ~ \.php$ { if (-f $request_filename) { fastcgi_pass 127.0.0.1:9000; } fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { if ($request_filename ~ /sub1) { rewrite ^ http://sub1.example.com/? permanent; } if ($request_filename […]

在nginx上与乘客一起运行roundcube

我最近试图在nginx上安装乘客。 安装工作,一切都很好。 不过,我想在我的服务器上运行roundcube webmail。 基本上我的问题是,nginx的根指令设置为乘客应用程序: root /home/me/www/hello/public 并且将roundcube创build为服务器上的符号链接,如下所示: /home/me/www/webmail 我的问题如何获得URL www.my-server.com引用正常的根,但www.my-server.com/webmail引用roundcube文件夹? 我已经试过在我的nginx.conf中没有运气的变化: location /webmail/ { #root /home/me/www; alias /home/me/www; try_files $uri /index.php; passenger_enabled off; } 当使用www.my-server.com/webmail时,上述configuration导致403禁止,使用URI:www.my-server.com/webmail/index.php时找不到File。 有任何想法吗?

如何减lessTIME_WAIT进程的数量?

$ netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c 92 ESTABLISHED 1 FIN_WAIT2 13 LISTEN 7979 TIME_WAIT 。 $ grep processor /proc/cpuinfo | wc -l 4 。 $ grep -r keep.*alive /etc/ /etc/ufw/sysctl.conf:#net/ipv4/tcp_keepalive_intvl=1800 /etc/nginx/nginx.conf: keepalive_timeout 5 5; 。 $ free -m total used free shared buffers cached Mem: 14980 1402 13577 […]

在Amazon EC2上运行应用程序服务器的nginx infront的目的是什么?

我一直在对后端架构进行大量的研究。 我目前在亚马逊的Web服务上运行django应用服务器和postgresql数据库服务器。 我所有的内容都是通过Gunicorn服务的。 我想知道为什么nginx服务器放在django应用服务器的前面。 他们的目的是什么? 这是一张图表: https://d36cz9buwru1tt.cloudfront.net/architecture_diagram_praekelt-1.jpg

'返回404' 不尊重Nginx的自定义错误页面设置

我在Nginx使用全局error_page设置在服务器块中设置了我的自定义404页面,但是,如果我在位置块内执行以下操作: if ($uri ~* …) {return 404;} 那么返回默认的Nginx 404页面。 有没有办法在这种情况下返回自定义页面? 更新:目前我有这样的事情 server { … error_page 404 /html/error/404.html; … root /home/www-data/mysite/static; location ^~ /blah/blah/ { if ($uri ~* …) { return 404; } … } location ^~ /html/error/ { internal; } }