我有nginxconfiguration aio on; 在操作系统方面没有特别的准备。 我testing了从多个客户端加载大量的小jpeg,但是aio和aio之间没有太大的区别。 我不确定是否需要在内核中启用AIO。 如何确认nginx aio是否在FreeBSD上运行? 如果nginx被configuration为使用aio但FreeBSD内核不支持它会发生什么? 我使用的是FreeBSD 8.1和nginx 1.2.7,文件系统是UFS
Hello Serverfault成员。 我想让我的NginX使用一个可选的.htpasswd文件。 原因是,我的configurationdynamic服务于webcontent。 基于$ http_host。 所以我已经尝试了以下内容: if (-f "/foo/$http_host/.htpasswd") { auth_basic "Restricted"; auth_basic_user_file "/foo/$http_host/.htpasswd"; } 但是这不起作用,因为auth_basic不允许在一个if里面。 如果我只使用两个auth_basic行,它会显示一个没有.htpasswd的web内容403。 有没有可能做到这一点,而不使用一个单独的configuration文件的保护内容?
Websocket支持是从1.3.13开始的,所以我应该拥有它。 有人可以请我提供一个最简单的configuration示例,该configuration允许我的nginx(在Centos 6上)代理接受来自我的客户端的HTTP Connect,然后代理将代表客户端在另一台服务器上build立到另一台服务器的后端的websocket连接和客户端和websocket服务器之间的代理通信? 我一直在努力,只有400错误。 我会很感激。 我努力了: 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 65; gzip on; server{ listen 8080; listen 80; location /wsDemo?ID=12 { proxy_pass http://myserver.com:80/wsDemo?ID=12; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; […]
我有 一项称为传统服务的服务 另一种称为开发服务的服务 一堆HTTP请求来到传统服务 有没有办法在不编写自定义实用程序的情况下将HTTP请求代理到传统服务和新服务? 所以我可以在真实stream量上testing我的开发服务,但不closures传统服务。
我有一个完整的.gz文件的文件夹,并且如果请求的客户端没有发送Accept-Encoding: gzip请求,并且按原样( gzip ),那么它们会透明地为它们提供服务。 我知道有HttpGzipStaticModule模块,但这只能解决问题的一部分。 这些文件只能以.gz格式保存,因此在文件系统上不会有nginx的虚拟版本。 这不应该是一个性能问题,因为CPU和RAM上的充气很轻。 我可以使用什么方法来即时膨胀.gz文件并将其提供给客户端? 我必须编写脚本并使用重写,还是有内build的东西,我还没有find?
通常我的nginxconfiguration如下所示: server { listen 80; server_name example.com; <some long config> } server { listen 443; server_name example.com; ssl on; ssl_certificate qwe.crt; ssl_certificate_key qwe.key; <the same long config> } 如何转发所有的https请求到http服务器指令(不发送redirect到客户端,但在nginx内转发),这样我就不需要写两次相同的configuration?
我试图在我自己的服务器上部署一个readthedocs实例。 推荐的部署方式是使用Gunicorn + nginx和postgres。 因为基本上没有关于如何执行此操作的文档(除了他们的fabfiles,当然只能在他们的服务器上运行),我一直在尝试手动设置自己的服务器。 这是我的nginx.conf : server { listen 80 default; server_name mysite.com; access_log /var/log/nginx/mysite.access.log; error_log /var/log/nginx/mysite.error.log; location /favicon.ico { root /home/mysite/Code/checkout/readthedocs.org/media/images; break; } location robots.txt { root /home/mysite/Code/checkout/readthedocs.org/media; break; } location /static/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location /media/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location / { proxy_pass_header Server; […]
在我的nginx conf.d文件中,我有以下几点: location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ^~ /dev/ { fastcgi_param PHP_VALUE display_errors=On; } 我的目标就是让* .php在任何目录(包括/ dev /目录)中被PHPparsing,并且在/ dev /目录中将启用display_errors。 但似乎这些位置并不是在一起而是在一起。 因此,如果它匹配* .php,它会将其parsing为一个PHP文件,除非它位于/ dev /目录中。 我必须是多余的,并有PHPconfiguration代码重复两次,或者有一种方法,我可以避免这种冗余? 谢谢!
我想分析某些types的请求是否对服务器有重要的影响。 我的后端服务在nginx后面,logging所有请求,包括获得响应所需的时间。 现在的问题是如何从这些约150mg的日志中提取有用的信息。 我正在寻找什么东西可以让我build立一个graphics,并将请求与后端CPU负载相关联。 单个请求的响应时间不相关,因为当后端服务器处于高负载状态时,即使简单的请求需要1秒钟,也会在10-20秒内返回。
我用Ruby和FastCGI做了一个网站,在Apache下它工作得很好。 我想切换到Nginx,但我无法得到它的工作。 该网站由两个stream程组成:一个负责处理AJAX呼叫,另一个处理剩下的事情。 到目前为止,我想我应该使用spawn-fcgi来启动我的工作者并将它们绑定到一个套接字。 因为我想有多个工作人员,我也使用multiwatch。 问题是,每当我尝试访问一个页面,我得到一个502错误,并在error.log中的以下行: 2013/04/03 23:58:39 [error] 1450#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: v2.localhost, request: "GET / HTTP/1.1", upstream: "http://unix:/run/fastcgi/site-v2.main.sock:/", host: "v2.localhost:8000" 所以没有工人回答这个要求。 netstat -x根本不显示套接字,但看起来好像在使用中,因为如果我尝试两次启动我的启动脚本,它说spawn-fcgi: socket is already in use, can't spawn 。 最后一件事情是:如果我启动我的启动脚本,而不尝试请求一个页面,multiwatch进程和工作人员终止正确与一kill multiwatch。 但是,如果我要求一个页面,应该发送响应的multiwatch和所有的子工作者挂起。 我必须kill -9他们。 该网站的入口点如下所示: require 'fcgi' FCGI.each do |req| […]