目前我正在使用nginx代理8个工人的gunicorn。 我正在使用4个虚拟内核的亚马逊超大型实例。 当我直接连接到gunicorn我得到约10K请求/秒。 当我从nginx服务一个静态文件时,我得到约25个请求/秒。 但是当我在同一台物理服务器上放置nginx后,我得到大约5K个请求/秒。 我知道nginx会有一些延迟,但是我认为可能会有一个问题,因为它会下降50%。 有人听说过类似的东西吗? 任何帮助将是伟大的! 这里是相关的nginx conf: worker_processes 4; worker_rlimit_nofile 30000; events { worker_connections 5120; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; } 网站启用/默认: upstream backend { server 127.0.0.1:8000; } server { server_name api.domain.com ; location / { proxy_pass http://backend; proxy_buffering off; } }
我知道这个话题以各种不同的forms存在,但是我在解决我的问题上遇到了麻烦。 如果我运行service nginx restart ,nginx会失败并显示以下日志: 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already in use) 2015/03/14 08:36:42 [emerg] 9400#0: bind() to 0.0.0.0:80 failed (98: Address already […]
我在Linux Mint LMDE上。 我只是收到了nginx从1.6.3升级到1.8.0的版本,现在我的所有网站都有空白页面 在这里我的configuration: server { listen 80; root /var/www/phpmyadmin; index index.php; server_name phpmyadmin.loc; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } location ~ /\.ht { deny all; } } 这是phpmyadmin的基本configuration 当我进入我的索引时,我获得了访问日志。 127.0.0.1 – – [07/May/2015:11:53:51 +0200] "GET / HTTP/1.1" 200 31 "-" […]
我有一个安装了SSL证书的nginx服务器。 我想通过任何请求上游到我的运行在0.0.0.0:8000 Gunicorn服务器。 但是,每当我运行Gunicorn服务器,它给我一个错误,说有太多的redirect循环。 如果我通过https运行gunicorn,那么连接将变得安全,但它不会连接到gunicorn服务器,它只会说bad gateway 。 另外,这里是我尝试连接时运行gunicorn与https的错误: Traceback (most recent call last): File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 515, in spawn_worker worker.init_process() File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process self.run() File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 119, in run self.run_for_one(timeout) File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 66, in run_for_one self.accept(listener) File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 30, in accept self.handle(listener, client, addr) File "/opt/bitnami/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 141, in […]
我想有几个Nginx实例在不同的端口上运行在我的服务器上(例如,一个用户在端口2345上运行Nginx,另一个用户在端口2346上运行)。 到目前为止,我已经成功地在指定的端口上编译和运行服务器。 然而,我遇到了一个奇怪的问题:如果我访问domain1.com:2345或domain2.com:2346我得到正确的(200)响应,但如果我访问domain1.com或domain2.com(不指定端口)我根本得不到答复。 任何帮助/线索搞清楚如何设置这将高度赞赏。
我已经设置NGINX为我的代理服务器返回自定义错误文档,它显示正确的文件,但总是返回一个200 OK头。 相关的NGINXconfiguration是 server { listen 94.23.155.32:80; server_name rmg.io www.rmg.io; proxy_intercept_errors on; location / { proxy_pass http://rmgshort/; } error_page 404 = /error/404.html; error_page 500 501 502 503 503 = /error/500.html; location /error/ { root /var/rmg/; } } 你可以testing这个如果你想要的, 这个页面应该返回一个404错误,它返回正确的文档,但将状态代码更改为'200 OK'( 这里testingHTTP标题),如果我用internal;replaceroot /var/rmg/ 正确的标题返回,但是我的自定义错误页面不起作用。 我如何让NGINX返回我的自定义错误文档与正确的状态头? 我在RHEL 6.1上运行NGINX 1.0.4
一对HTTP服务器如何configuration为在端口80上侦听,而在同一台服务器上的不同接口上侦听? 具体来说,我想在一台机器上运行nginx和apache(CentOS 6),以便在不同的IP上运行不同的应用程序。 我相信,默认情况下,Apache绑定到0.0.0.0,响应所有入站通信的请求。 这个场景如何实现?
我正在上传一个26Gb文件,但我得到: 413 Request Entity Too Large 我知道,这与client_max_body_size有关,所以我将此参数设置为30000M 。 location /supercap { root /media/ss/synology_office/server_Seq-Cap/; index index.html; proxy_pass http://api/supercap; } location /supercap/pipe { client_max_body_size 30000M; client_body_buffer_size 200000k; proxy_pass http://api/supercap/pipe; client_body_temp_path /media/ss/synology_office/server_Seq-Cap/tmp_nginx; } 但是当整个file upload的时候,我仍然得到这个错误。
我试图在我的一个Subversion版本库中创build一个分支,并且一直运行到一个错误。 不pipe做什么,我总是得到以下几点: 找不到文件:事务'3062-2e6',path'/ Software / XXXXXX / branches / testbranch' 我注意到上面消息中'3063-3e6'的第一部分是版本库中最后一次成功提交的版本。 我的Apache日志不能提供更多的信息: [Wed Nov 24 14:10:38 2010] [error] [client xxxx] Could not MOVE/COPY /svn/p070361/!svn/bc/3049/Software/SXXXXXX/trunk. [404, #0] [Wed Nov 24 14:10:38 2010] [error] [client xxxx] Unable to make a filesystem copy. [404, #160013] [Wed Nov 24 14:10:38 2010] [error] [client xxxx] File not found: transaction '3059-2e2', […]
我有以下nginx的vhostconfiguration: server { listen 80 default_server; access_log /path/to/site/dir/logs/access.log; error_log /path/to/site/dir/logs/error.log; root /path/to/site/dir/webroot; index index.php index.html; try_files $uri /index.php; location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_pass localhost:9000; fastcgi_param SCRIPT_FILENAME /path/to/site/dir/webroot$fastcgi_script_name; include /path/to/nginx/conf/fastcgi_params; } } 我想redirect所有不匹配存在的文件的请求到index.php。 目前对于大多数URI来说,这个工作正常,例如: example.com/asd example.com/asd/123/1.txt asd或asd/123/1.txt都不存在,所以他们被redirect到index.php,并且工作正常。 然而,如果我把example.com/asd.php放在url中,它会尝试寻找asd.php ,当它找不到它时,它会返回404而不是将请求发送到index.php 。 有没有办法让asd.php也发送到index.php如果asd.php不存在?