Articles of nginx

使用nginx,我想重写一个.aspx扩展名的URL

我正在将.NET应用程序移到Rails应用程序中。 我需要重新写入url: www.example.com/users/user.aspx?userid=1231 至 www.example.com/users/1231 我怎样才能做到这一点? 我不想redirect,我希望它看起来像我正常响应这个请求,但内部我的Ruby on Rails应用程序将认为该URL是我张贴的第二个url。

Nginx的错误413

我原来在Stack Overflow上发布了这个,然后记住,SO不适用于基于服务器的问题。 大家好, 当我尝试上传一个文件到我的网站,我得到了Nginx的“413请求实体太大”的错误,但是在我的nginx.conf文件中,我已经明确指出,目前的最大大小为250MB左右,并更改了php.ini中的最大文件大小(是的,我重新启动了进程)。 错误日志给了我这个: 2010/12/06 04:15:06 [error] 20124#0:* 11975客户端打算发送过大的主体:1144149字节,客户端:60.228.229.238,服务器:www.x.com,请求:“POST / upload HTTP / 1.1“,主机:”x.com“,引荐来源:” http://x.com/ “ 据我所知,1144149字节不是250MB …有什么我在这里失踪? 这里是基本的Nginxconfiguration: user nginx; worker_processes 8; worker_rlimit_nofile 100000; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] […]

将(别名?redirect?路由?)子域转发到Nginxconfiguration中的目录

我想别名m.example.com以便将请求转发/别名为example.com/m/但是用户不会被redirect到/m/目录。 例如,用户访问m.example.com , m.example.com/1.htm / m.example.com/1.htm , m.example.com/2.htm / m.example.com/1.htm ,但nginx正在将请求转发/别名到example.com/m/1.htm和example.com/m/2.htm 。 我试图使用rewrite指令,但是这似乎执行客户端redirect到example.com/m/ 。 我也看了一下alias指令,但是这似乎只是修改文件在服务器文件系统上的位置。 我肯定这一定是以前做过的,但我似乎无法解决这个问题。 我使用了一个不正确的标志与alias指令(我试过所有4: last , break , redirect , permanent )。 我错过了正确的使用方法吗? configuration使用重写片段: server_name example.com m.example.com; … if ($host ~* m\.(.*)) { rewrite ^(.*)$ http://example.com/m$1 break; } 另一个尝试: server { listen 80; server_name m.example.com; location / { rewrite ^ http://example.com/m$request_uri permanent; […]

Apache V Nginx – 静态文件结果

我用ab(ab -c50 -t5s)来testingApache V Nginx在同一台服务器上的静态文件。 Apache以每秒200个请求的速度处理CPU,而Nginx则处于CPU的25%左右,而手机每秒处理5211个请求。 Apache没有交换,缺乏内存不是问题。 我知道Nginx和Apache有很多不同的configuration,但是Apache的背后有多远,Nginx只是可笑而已。 事实上这很可笑,我想我已经错过了Apache的东西。 任何想法从哪里开始? ab结果如下: Server Software: nginx Server Port: 80 Document Path: /images/15.jpg Document Length: 15088 bytes Concurrency Level: 50 Time taken for tests: 5.494 seconds Complete requests: 26059 Failed requests: 0 Write errors: 0 Total transferred: 400370476 bytes HTML transferred: 393178192 bytes Requests per second: 5211.29 [#/sec] […]

nginxconfiguration困扰多个子域名和域名

我终于离开了Apache,我已经获得了在最新的Ubuntu 10.04 VPS上运行的最新nginx开发版本。 我有一个专用的IP(1.2.3.4),但是我有两个指向服务器的独立域:www.example1.com和www.example2.net。 我想要在configuration中映射URL和文档根之间的休闲关系: www.example1.com / example1.com -> /var/www/pub/example1.com/ subdomain.example1.com -> /var/www/dev/subdomain/example1.com/ www.example2.net / example2.net -> /var/www/pub/example2.net/ subdomain.example2.net -> /var/www/dev/subdomain/example2.net/ 其中请求的子域名是/ var / www / dev /下的文件夹。 理想情况下,请求一个不存在的子域名(找不到匹配的文件夹)将导致重写到公共站点(例如:invalid.example1.com – > www.example1.com),但是仅仅是“404 Not Found”这不是世界上最糟糕的事情。 这也将是很好,如果我不需要修改configuration每次我mkdir一个新的子域文件夹 – 甚至更好,如果我不需要编辑一个新的域…但现在我变得贪婪…:p尽pipe在我的防守中,Apache只用一个指令来完成所有这些工作。 有谁知道我可以如何有效地模仿nginx中的这种行为? 提前致谢, 彼得Hanneman

nginx在系统重启时不使用/ etc / environment中设置的variables,而是在从shell重新启动时使用

我有一个Rails应用程序运行在nginx /乘客。 它使用sudo /etc/init.d/nginx stop|start|restart在shell中高兴地sudo /etc/init.d/nginx stop|start|restart 。 但是Passenger在系统重启时会抛出一个错误:“Missing the Rails#{version} gem”。 但是GEM_HOME和GEM_PATH都在/etc/environment设置,所以在重启过程中它们肯定会被所有的进程使用。 在/ etc /环境 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games" GEM_HOME=/var/lib/gems/1.8 GEM_PATH=/var/lib/gems/1.8 /etc/init.d/nginx #! /bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: […]

Ngnix作为基于Apache名称的虚拟主机的反向代理

我正在Apache上运行几个网站,目前正在使用基于名称的虚拟主机。 所有的网站都在同一台服务器上。 我想在一台新的服务器上添加Ngnix作为caching逆向代理。 处理多个基于名称的虚拟主机的最佳方式是什么? 我应该简单地让Nginx处理名称,并在一个单独的端口上运行每个Apache虚拟主机? 或者有没有办法让Nginx把主机名传给Apache,并让Apache负责处理域名呢?

Awstats日志格式错误?

我已经经历了一段时间的awstats文档,它似乎与Logformat失败。 我在awstats中使用以下内容, LogFormat = "%host – – %host_r %time1 %methodurl %code %bytesd %refererquot %uaquot %otherquot" (来自nginx) 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 logs/access.log main; 样本点击次数: http : //pastebin.com/raw.php?i = qD9PKN52

限制APC操作码caching到特定的网站? Nginx + PHP-FPM + APC

有没有办法在每个虚拟主机的基础上启用/禁用APC? 我宁愿不要使用宝贵的APC共享内存caching我的PHPmyAdmin子域或较less使用的网站。 安装程序是Nginx,php-fpm和apc。 从我读过APC的filter设置无法匹配完整path,所以我正在寻找其他方法。

nginx将dynamic内容caching到静态

我读过和听说过,nginx可以cachingdynamic内容并使其成为静态的,因此加载速度更快,需要更多的apache负载。 有没有人做过这个? 这值得么? 任何优点/缺点呢?