Articles of nginx

nginx loggin $ request_body产生奇怪的编码

我有一个nginx服务器,将POST $ request_bodylogging到文件中。 当我发布json到服务器时,它用\ x22replace引号(“)。 我的configuration看起来像这样 server { server_name myServer; listen 8180; log_format logMyServer '$request_body'; location /myServer { access_log /var/log/nginx/request_bodies.log logMyServer; proxy_pass http://127.0.0.1:8000/; break; } } 以下是我如何生成请求: curl -H "Content-Type: application/json" -X POST -d '{"some":{"foo":"bar"}}' localhost:8180/myServer/ 我的问题是: 什么样的编码是\ x [数字]? 有没有办法可以configuration日志logging,而不是\ x22引号?

Virtualmin更改apache端口

我试图改变Apache端口为82(confugure nginx):我改变了: NameVirtualHost 94.198.110.11:80到NameVirtualHost 94.198.110.11:82在apache2.conf 听94.198.110.11:80在ports.conf中监听94.198.110.11:82 VirtualHost 94.198.110.11:80到虚拟主机94.198.110.11:82在站点可用/默认 并在每个虚拟主机中手动更改端口。 但是,当我创build新的主机,它创build80默认端口,并在prev。 configuration文件添加了80端口的线路。我怎样才能更改默认端口?

如何在HTTPS和身份validation后提供MailCatcher?

我正在开发一个Ruby on Rails应用程序,并有一个登台服务器。 但是这个登台服务器不会发送任何电子邮件,而是丢弃它们。 为了testing我们发送的电子邮件,以及这些电子邮件的样子(所以我们可以使用登台服务器进行质量保证),我find了MailCatcher 。 但是目前它专注于开发环境,所以既不支持HTTPS也不支持authentication,而且我也不想公开所有人的MailCatcher电子邮件。 有没有办法通过Apache或Nginx提供HTTPS和基本身份validation? 也许是一个反向代理?

UWSGI和NGINX for Ubuntu 11.10上的Python应用程序

我试图find一个最佳的方式来设置我的服务器使用NGINX和UWSGI服务python应用程序。 以下工作到目前为止: 初始设置: sudo apt-get install nginx uwsgi uwsgi-plugin-http uwsgi-plugin-python python-setuptools easy_install pip pip install web.py 在/ etc / nginx的/网站可用/默认: server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; } } 然后我有一个基本的myapp.py(位置不关心当前的设置): import web urls = ( '/', 'index' ) app = web.application(urls, globals()) class index: def GET(self): return "Hello from […]

设置Elastic Load Balancer后,我的https不再工作。 Nginx错误

我有一个正常的实例,当不在负载均衡器后面时可以正常工作。 我build立了一个ELB,80转发到80和443转发到443和粘性会话。 之后,我收到此错误时去任何https页面。 The plain HTTP request was sent to HTTPS port 我处理在我的nginxconfiguration中的某些页面上强制https的过程。 我需要做些什么才能做到这一点? 我在下面放置一个我的nginxconfiguration的准系统版本。 http { include mime.types; default_type application/octet-stream; # Directories client_body_temp_path tmp/client_body/ 2 2; fastcgi_temp_path tmp/fastcgi/; proxy_temp_path tmp/proxy/; uwsgi_temp_path tmp/uwsgi/; server { listen 443; ssl on; ssl_certificate ssl.crt; ssl_certificate_key ssl.key; server_name www.shirtsby.me; if ($host ~* ^www\.(.*)) { set $host_without_www $1; rewrite ^/(.*) […]

限制nginx每分钟的请求

我想设置一个单一的客户端IP地址可以根据他们的IP地址对我的服务器的请求数量的限制。 Nginx有一个limit_req_zone指令。 但是,这个指令实际上会限制平均点击次数。 如果我将限制设置rate=6r/m ,那么实际上每10秒只能有一次命中。 相反,我需要的是每分钟的实际限制。 例如,客户应该能够相互或甚至同时快速地发出3或4个请求,但是不超过例如每分钟10个。 有没有办法做到这一点?

更改Nginx组

在我们的开发环境中,我将一些Apache站点迁移到Nginx。 我想要做的是确保我所有属于同一个组( webgroup )的开发人员都可以完全访问由Web服务器用户( www-data )创build的文件(例如日志文件)。 networking用户创build的文件通常由www-data:www-data所以我想我会更改该用户的主要组,以匹配开发人员( webgroup )。 组更改似乎已经完成,但新创build的文件仍由www-data:www-data 。 我没有看到nginx conf的group指令,所以我想知道是否有任何方法可以确保由nginx用户创build/更新的文件是由正确的组拥有的。 如果我想到,我想我可以把www-data作为我所有用户的主要群体,但是我没有,我也不想回头去接触所有这些用户。 请记住,这是一个开发环境,所以安全性不是超临界的,但我仍然希望避免每个人都以root身份进行身份validation,或者以类似的方式开放。 UPDATE 我已经尝试更新我的nginx.conf文件,如下所示,但无济于事。 在重新启动和强制重新加载后,新文件仍被创build为www-data:www-data 。 user www-data webgroup

与nginx一起使用挂载的NTFS共享

我已经用Ubuntu Server 12.04 LTS和LEMP堆栈build立了一个本地testing虚拟机。 这是一种非常规的设置,因为我没有在本地机器上安装所有的PHP脚本,而是将一个NTFS共享作为文件根目录,因为我在Windows上进行了开发。 直到今天早上,我的所有工作都完美无缺,现在我一直在收到一个可怕的“文件未find”。 错误。 我几乎可以肯定,这必须以某种方式与权限相关,因为如果我将我的网站复制到/var/www ,nginx和php-fpm在服务我的PHP脚本时没有问题。 我无法弄清楚为什么突然(服务器重启后),没有PHP文件将被提供,而只是“文件未find”。 错误。 静态文件工作正常,所以我认为这是PHP导致头痛。 nginx和php-fpm都被configuration为以用户www-data身份运行: root@ubuntu-server:~# ps aux | grep 'nginx\|php-fpm' root 1095 0.0 0.0 5816 792 ? Ss 11:11 0:00 nginx: master process /opt/nginx/sbin/nginx -c /etc/nginx/nginx.conf www-data 1096 0.0 0.1 6016 1172 ? S 11:11 0:00 nginx: worker process www-data 1098 0.0 0.1 6016 1172 ? […]

用nginx防止大file upload

我使用Nginx作为Web服务器来服务我的网站。 我提供上传function给我的用户(他们被允许提交图片高达5Mb),所以我有指令: client_max_body_size 5M; 在我的服务器configuration。 我注意到的是,如果我尝试上传任何文件,Web服务器不会阻止上传更大的文件。 举个例子,假设我试图上传一个700Mb的真正大的video(电影)。 服务器不会立即拒绝上传,但会缓冲整个数据(花费太长时间并减慢服务器速度),只有在上传结束时才会返回一个413 Request entity too large错误。 所以问题是:有没有办法正确configurationNginx阻止大file upload时,传输的数据开始克服我的client_max_body_size限制? 我认为用我的实际设置进行生产会非常不安全,而且我无法在Google上find任何有用的信息。 编辑: 我使用PHP和Symfony2作为后端… 编辑(再次): 这是我的error.log中显示的内容: 2013/01/28 11:14:11 [error] 11328#0: *37 client intended to send too large body: 725207449 bytes, client: 33.33.33.1, server: www.local.example.com, request: "POST /app_dev.php/api/image/add/byuploader HTTP/1.1", host: "local.example.com", referrer: "http://local.example.com/app_dev.php/"` 奇怪的是,我正在用tail -f error.log监视我的nginx error.log ,并且在上载开始时(在结束之前)立即出现消息。 所以nginx做了一些预防性的检查,但是不会停止/块化上传请求… 我也试图validation,如果PHP通过发出echo 'something'; die();得到上传的控制echo 'something'; […]

Segfault PHP-FPM,Nginx,Freebsd

我们正在经历高负荷的CPU短缺。 它只发生在网上用户在1300-1400左右(根据谷歌分析)。 我们在浏览器中收到空响应。 短缺意外地发生在我看来很奇怪。 我的意思是 – 有50%以上的空闲CPU,突然下降到0%几秒钟,然后跳回来。 这是当时的“iostat 1”输出。 看最后一栏。 70%是最新的正常行为。 http://pastebin.com/sMjQ0AaJ 队列中的所有PHP-FPM进程正在死亡,将这些日志留在/ var / log / messages中 Feb 25 20:20:01 <kern.info> dasaran kernel: pid 36267 (php-fpm), uid 80: exited on signal 11 Feb 25 20:20:01 <kern.info> dasaran kernel: pid 36265 (php-fpm), uid 80: exited on signal 11 Feb 25 20:20:01 <kern.info> dasaran kernel: pid […]