upstream app_front_static {
server 192.168.206.105:80;
}
Run Code Online (Sandbox Code Playgroud)
以前从未见过,任何人都知道,这意味着什么?
我很遗憾和我自己建立NGINX的新手,但我希望能够启用安全的websockets,而无需额外的层.
我不想在websocket服务器本身上启用SSL,而是想使用NGINX为整个事物添加SSL层.
每个网页都说我做不到,但我知道我可以做到!感谢任何人(我自己)可以告诉我如何!
我想使用nginx在同一台服务器上托管2个不同的域.我通过@ property将这两个域重定向到此主机.虽然我配置了2个不同的服务器块,但每当我尝试访问第二个域时,它都会重定向到第一个域.
这是我的配置.
server {
listen www.domain1.com:80;
access_log /var/log/nginx/host.domain1.access.log main;
root /var/www/domain1;
server_name www.domain1.com;
location ~ \.php$ {
# Security: must set cgi.fixpathinfo to 0 in php.ini!
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
}
server {
listen www.domain2.com:80;
access_log /var/log/nginx/host.domain2.access.log main;
root /var/www/domain2;
server_name www.domain2.com;
location ~ \.php$ {
# Security: must set cgi.fixpathinfo to 0 in php.ini!
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include …Run Code Online (Sandbox Code Playgroud) 有没有办法让主进程记录到STDOUT STDERR而不是文件?
您似乎只能将文件路径传递给access_log指令:
access_log /var/log/nginx/access.log
Run Code Online (Sandbox Code Playgroud)
error_log也是如此:
error_log /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)
据我所知,这可能不是nginx的一个特性,我会对使用tail的简洁解决方案感兴趣.虽然它来自主进程,但最好是因为我在前台运行nginx.
我正在运行nginx/ruby-on-rails,我有一个简单的多部分表单来上传文件.一切正常,直到我决定限制我想要上传的文件的最大大小.为此,我将nginx设置client_max_body_size为1m(1MB)并期望在该规则中断时响应HTTP 413(Request Entity Too Large)状态.
问题是,当我上传一个1.2 MB的文件,而不是显示HTTP 413错误页面时,浏览器会挂起一点,然后在"页面加载时重置连接"消息时死掉.
我已经尝试过nginx提供的每一个选项,似乎没什么用.有没有人对此有任何想法?
这是我的nginx.conf:
worker_processes 1;
timer_resolution 1000ms;
events {
worker_connections 1024;
}
http {
passenger_root /the_passenger_root;
passenger_ruby /the_ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.x.com;
client_max_body_size 1M;
passenger_use_global_queue on;
root /the_root;
passenger_enabled on;
error_page 404 /404.html;
error_page 413 /413.html;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
**Edit**
环境/ UA:Windows XP/Firefox 3.6.13
我们有一台服务器正在提供一个html文件.
现在服务器有2个CPU和2GB内存.从blitz.io开始,我们每分钟可以获得大约12k个连接,并且在60秒内有200个超时,每秒250个并发连接.
worker_processes 2;
events {
worker_connections 1024;
}
Run Code Online (Sandbox Code Playgroud)
如果我增加超时,响应时间开始爬升超过一秒.
我还能做些什么来挤出更多汁液?
如何在NGINX配置中为两个位置使用相同的规则?
我尝试了以下内容
server {
location /first/location/ | /second/location/ {
..
..
}
}
Run Code Online (Sandbox Code Playgroud)
但是nginx reload抛出了这个错误:
nginx: [emerg] invalid number of arguments in "location" directive**
Run Code Online (Sandbox Code Playgroud) 在客户端的服务器上工作,其中安装了两个不同版本的nginx.我认为其中一个是使用brew包管理器(它是一个osx盒)安装的,另一个似乎是使用nginx打包的Makefile编译和安装的.我搜索了服务器上的所有nginx.conf文件,但这些文件都没有定义nginx在服务器上启动时实际使用的参数.我不知道的nginx.conf文件在哪里?
当我的PHP脚本运行时间超过平常时,我从nginx收到504超时消息.set_time_limit(0)似乎并没有阻止这一点!在nginx上运行php5-fpm时它不起作用吗?如果是这样,那么设定时限的正确方法是什么?
错误:
504 Gateway Time-out
nginx/1.2.7
Run Code Online (Sandbox Code Playgroud) 我在乘客/ nginx后面运行一个Sinatra应用程序.我试图让它响应http和https调用.问题是,当两者都在服务器块中定义时,https呼叫正常响应但http产生400"普通HTTP请求被发送到HTTPS端口"错误.这是一个静态页面,所以我猜Sinatra与此无关.有想法该怎么解决这个吗?
这是服务器块:
server {
listen 80;
listen 443 ssl;
server_name localhost;
root /home/myhome/app/public;
passenger_enabled on;
ssl on;
ssl_certificate /opt/nginx/ssl_keys/ssl.crt;
ssl_certificate_key /opt/nginx/ssl_keys/ssl.key;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
location /static {
root /home/myhome/app/public;
index index.html index.htm index.php;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 /500.html;
access_log /home/myhome/app/logs/access.log;
error_log /home/myhome/app/logs/error.log;
}
Run Code Online (Sandbox Code Playgroud)