Articles of nginx

Logrotation不适用于nginx

我正在尝试使用Logrotate旋转nginx日志。它将日志附加到同一个文件(error.log和access.log),但不是每天都在旋转。 下面是相同的configuration文件。 请让我知道如果我失去了什么。 /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript } $ more /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit […]

索引文件在nginx中redirect

脚本 我有一个网站的结构如下: /index.html /about/index.html /contact/index.php /contact/send_email.php 我本来希望使URL更清洁,所以我会成为等效的结构: / => /index.html /about/ => /about/index.html /contact/ => /contact/index.html /contact/send_email.php => /contact/send_email.php 基本上是一个Nginxconfiguration,从URI中删除所有的index.html或index.php文件名。 我的尝试configuration server { listen 80; root /home/www/mysite; server_name www.mysite.com; location ^~* /[az]+/index\.(html|php)$ { rewrite ^(/[az]+/)index\.(html|php)$ http://www.mysite.com$1? permanent; } try_files $uri $uriindex.html $uriindex.php =404; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5.sock fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } […]

413:请求实体太大(client_max_body_size被设置)

我真的不知道还有什么地方可以find答案。 网上的每一个指南或问题说检查client_max_body_size并解决它。 然而,对于我来说,我正在尝试对我自己的服务器上的PHP文件执行大的PUT请求。 我有… client_max_body_size 32M; 在nginx.conf服务器块中。 我知道这是有效的,因为WordPress的正确的上传大小设置为32MB。 除此之外,我发现我需要检查3个PHPvariables,我不记得它们是什么,但它们都足够远(在几百MB)。 也许我需要做一些缓冲区? 我不知道 :( 我正在使用的脚本是与第三方服务进行通信的代理脚本。 它logging所有的数据输出,这是目前为止的日志..不知道这是否可以暗示一个问题。 我认为下面是服务器正在发送的内容(因为它在日志文件中,并且正在写入STDOUT,所以我假定php代理脚本正在尝试写入它想要发送的头文件)。 当我使用chrome开发工具时,我没有看到Expect: 100-continue 。 难道这有什么关系吗? 编辑:查看PHP源代码后,它似乎是一个有100个继续的“错误”,这是搞砸了代理脚本…所以忽略下面的所有输出。 我想我会把它放在其他地方,以防万一。 "PUT /rest/cart HTTP/1.1" "HOST: staging.site.com" "CONNECTION: keep-alive" "CONTENT-LENGTH: 2695" "ACCEPT: application/json, text/javascript, */*; q=0.01" "CACHE-CONTROL: no-cache" "ORIGIN: http://staging.site.com" "X-REQUESTED-WITH: XMLHttpRequest" "USER-AGENT: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.37 Safari/537.36 […]

如何更改nginx中的$ request_uri?

我们从$_SERVER['REQUEST_URI']获取信息不是从$_GET或$_POST 。 我想定义$request_uri来改变/example /module/controller/action 不redirect。 我尝试了代码打击这样做,但它不工作。 location /example { rewrite /module/controller/action; }

如何在nginx中设置gzip_static和gzip_proxied

nginx位于应用程序服务器之前,作为反向代理以及文件服务器。 来自应用程序服务器的响应有两种types:JSON消息和X-Accel-Redirect,指示nginx提供静态文件。 静态文件已经被预先压缩了,我希望nginx能够处理这些压缩的内容,所以我启用了gzip_static on 。 我的问题是,在这种情况下,我应该如何设置gzip_proxied ? 我的理解是, gzip_proxied决定应用程序服务器的响应在传递给客户端时是否会被压缩。 在我的情况下,JSON消息不需要被压缩,静态文件已经被预先压缩了。 这是否意味着我可以离开gzip_proxied off ?

Node.js + Nginx的访问控制,允许来源不起作用

我有api.mysite.com托pipe的api和client.mysite.com上的客户端。 现在从客户端我得到 XMLHttpRequest无法加载http://api.mysite.com/settings/find 。 Access-Control-Allow-Origin不允许访问原始http://client.mysite.com 。 api基于node.js(sailsjs框架)和angular.js上的客户端。 networking服务器是一个nginx机器。 我的虚拟主机configuration: server { listen 0.0.0.0:80; server_name api.mysite.com; location / { add_header 'Access-Control-Allow-Origin' 'http://api.mysite.com'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE'; add_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin'; proxy_pass http://127.0.0.1:1337/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 所以在浏览器中,我可以很好地访问我的API,但是当我从客户端访问它时,我得到以上错误。 正如你所看到的,我添加了相关的头文件到虚拟主机,但我仍然得到错误。 任何想法什么是错的?

Nginx来解决Nodejs应用

我正在使用Plesk 11.5.x的Ubuntu Web服务器。 我添加了Nodejs,现在我想用一个子域名来pipe理Nodejs应用程序。 网站: domain.tld Nodejs App: app.domain.tld 目前工作: domain.tld:2368 ,但我想隐藏端口的帮助下的子域。 我应该能够做到以下几点: upstream app_myApp { server 127.0.0.1:2368; } server { listen 0.0.0.0:80; server_name app.domain.tld; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://app_myApp/; proxy_redirect off; } } 我的问题是在哪里放置,因为我正在使用Plesk。 在Plesk 11.5的…/system/domain.tld/conf/vhost_nginx.conf是上游和服务器命令不允许。 而location /也是不可能的。 我想我会需要像/etc/nginx/sites-available/domain.tld 。 我不知道在哪里添加这个没有破坏plesk或我的configuration覆盖自动plesk reconfig。 […]

防止Nginx移除端口号

那么,我真的很困惑。 我有一个虚拟机内运行nginx的Web服务器。 我正在从主机端口8082到虚拟机中的端口80。 事实上,去exampledomain.dev:8082按预期显示的网页。 当我input一个类似于exampledomain.dev:8082/subdirectory的url时,问题就会发生 浏览器将我redirect到没有端口号的exampledomain.dev/subdirectory ,所以没有任何工作。 但是,如果我像在这个exampledomain.dev:8082/subdirectory/中的URL中添加反斜杠,它正常工作。 我的问题是,我怎么能指出exampledomain.dev:8082/subdirectory和exampledomain.dev:8082/subdirectory/到同一个地方,以及如何防止nginx删除端口号? 如果是重要的,这是我在虚拟机内的实际nginxconfiguration: server { listen 80; server_name exampledomain.dev; root /srv/www/exampledomain; index index.php; rewrite ^([^.]*[^/])$ $1/ permanent; location /subdirectory { try_files $uri $uri/ /subdirectory/index.php?$args; } }

Nginx:将文件作为文本提供,而不需要附加.txt

我有一些.rb(Ruby脚本)文件,我链接到我的网站上。 默认情况下,浏览器只是将它们下载到“Downloads”文件夹,因为它压缩文件。 我希望浏览器将其视为文本,所以Ruby脚本将在浏览器中显示。 但是,如果以正常方式执行此操作,则确实会在浏览器中显示,但问题是当用户在文件上执行“右键单击另存为”时,下载的文件会附加.txt,如myscript.rb.txt 这个.txt扩展名可以通过nginx设置来避免吗?

nginx proxy_pass设置主机名

这是我从nginx.conf的服务器块,我试图重写我的请求,这发生很好,但我的上游主机名没有被正确设置,它总是parsing为实际的IP地址,但我的API托pipe作为虚拟主机在Apache所以终点总是返回500,任何想法如何我可以解决这个问题? listen 8090; server_name example.dev.xyz.com; set $api_path http://example-dev/api; location ~ ^/api/ { rewrite ^/api/(.*) /$1 break; proxy_pass $api_path; proxy_redirect off; proxy_set_header Host $server_name ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 这里是来自nginx日志的细节 …top/api-aggregator-master/sandbox/lua/system/sandbox.lua: in function <…top/api-aggregator-master/sandbox/lua/system/sandbox.lua:1> while sending to client, client: 127.0.0.1, server: example.dev.xyz.com, request: "GET /aggr/conversations HTTP/1.1", host: "localhost:8090" 2013/10/02 09:21:57 [warn] 27711#0: […]