Articles of nginx

EC2与torquebox和nginx的错误网关

我用torquebox和nginx设置了一个EC2实例。 Torquebox启动没有任何错误,但我不能在端口8080访问它。即使我添加VPC规则来打开该端口。 我得到网关超时,如果我去死的myip:8080和坏网关,如果我访问myip这个nginxconfiguration: server { listen 80 default deferred; # server_name ; location / { access_log off; proxy_pass http://127.0.0.1:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 我试图设置proxy_pass到服务器IP,但这也没有帮助。 nginx日志包含以下错误: connect() failed (113: No route to host) while connecting to upstream, client: "myip", server: , request: "GET / HTTP/1.1", upstream "http://"myserverip":8080/", host: "myserverip" […]

清漆4工作configuration(优化)为WordPress(default.vcl)

我已经成功地在我的nginx 1.6.2上设置了清漆4,它正在工作,但根据testing http://www.isvarnishworking.com/ 表明 Varnish看起来是在那个url上响应的,但是Cache-Control头的“max-age”值是小于1的,这意味着Varnish永远不会在这个url上从caching中提供内容。 最大年龄值看起来是:0 这可能是故意的,但是如果你想让Varnishcaching这个URL,你将不得不修复应用程序发送给Varnish的最大年龄值。 这意味着它不工作,但不是预期的,searchconfiguration文件,但由于清漆版本4的巨大变化那些configuration文件不起作用。 请帮帮我吧。 谢谢

Nginx代理filter在Fail2ban中究竟做了什么?

Nginx代理filter在Fail2ban中究竟做了什么? 我目前正在为Nginx设置Fail2Ban。 几乎在任何地方我读过,他们都包含了一个[nginx-proxy]代理filter的设置。 从示例中,我可以看到这个filter如何禁止在日志中执行类似这样的事情的ipaddress: 58.218.204.110 – – [06/Mar/2011:08:04:42 -0800] "GET http://www.shopsline.com/proxyheader.php HTTP/1.1" 404 505 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 58.218.199.147 – – [06/Mar/2011:11:01:33 -0800] "GET http://www.foodnese.com/indux.php HTTP/1.1" 404 498 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 58.218.199.147 – – [06/Mar/2011:16:00:18 -0800] "GET http://98.126.64.106/judge123.php HTTP/1.1" 403 502 "-" "Mozilla/4.0 (compatible; MSIE 6.0; […]

子域的nginx通配符server_name给出index.php 404错误

我一直在使用这个服务器configuration的WordPress,这在我的本地机器上效果很好: server { server_name example.example root /home/user/sites/example/example/html; index index.php index.html index.htm; access_log off; error_log /home/user/log/error.log; location / { try_files $uri $uri/ /index.php?q=$uri&$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 现在我还有其他的wordpress安装,所以我读了通配符和子域名,并尝试这样的: server { server_name ~^(.*)\.example; root /home/user/sites/example/$1/html; index index.php index.html index.htm; access_log off; error_log […]

uWSGI无法加载virtualenv

我正在使用nginx和uWSGI设置一个Python应用程序。 我的依赖是在virtualenv。 如果我手动激活virtualenv,所有的东西都可以运行这个命令: uwsgi –ini uwsgi.ini 但是,如果我尝试运行与virtualenv停用相同的命令,我得到这在输出(虽然没有具体的权限错误): *** no app loaded. going in full dynamic mode *** 同样,当Emperor加载ini文件时,它不能运行该应用程序。 我的理解是,使用home选项应该激活virtualenv,但它似乎没有工作。 (加载的wsgi.py模块也激活了virtualenv,所以我甚至不知道为什么我需要这样做之前…) 这是我的uwsgi.ini : [uwsgi] uid = 1000 socket = 127.0.0.1:8000 workers = 3 master = true processes = 5 module = wsgi:application chdir = /home/laststatement/app/laststatement home = /home/laststatement/.virtualenvs/last logto = /home/laststatement/log/uwsgi.log 这是uWSGI日志: machine: x86_64 clock source: […]

Nginx:使用X-Accel-Expires和Cache-Control

我使用Nginx作为caching代理服务器。 我在使用X-Accel-Expires和Cache-Control标头caching响应时遇到了问题。 我的上游返回一些标头为nginx的请求正文: […] X-Accel-Expires: 60 Cache-Control: no-cache […] 我的意图是,Nginx的caching响应60秒,但客户端将只获得caching控制:无caching头(所以他们不会caching在浏览器中的响应)。 但nginx不caching该响应。 Nginx荣幸Cache-Control头并忽略X-Accel-Expires头。 我认为X-Accel-Expires是Cache-Control的 “更强”,但它不是。 有什么方法可以改变吗? 我知道我可以使用: proxy_ignore_headers Cache-Control; 但我不能这样做,因为我没有来自上游服务器的每个响应中的X-Accel-Expires标头。 总结当我从上游返回thoose标题: X-Accel-Expires: 60 Cache-Control: no-cache 我想在nginxcaching中caching响应60秒,但返回给客户端caching控制:无caching 。 但是,当我回到这个: Cache-Control: max-age=90 (没有X-Accel-Expires头文件)我想在nginxcaching中caching响应60秒,然后返回给客户端Cache-Control:max-age = 90头文件。 这可能吗?

与HHVM / Nginx一起使用APC

我一直在使用APC进行对象caching,并使用PHP / Apache设置一年左右,并且一直在工作。 最近我一直在玩HHVM和Nginx,并安装了APC。 它似乎正在工作,因为它看起来像DB查询被caching在内存中,但是当看着APC的统计看起来不像是在工作。 你可以在这里看到统计: http://128.199.50.72/apc.php : http://128.199.50.72/apc.php 这是一个WordPress站点,我正在使用APC下载WordPress: https : //wordpress.org/plugins/apc/ 我可以提供更多的细节,如果需要的话,但我很不熟悉的服务器configuration,所以不知道什么额外的提供。 我想另一个说明是,我一直在使用APC 3.1.13,但新的服务器使用APC 4.0.2,我不知道这是否是一个问题。 编辑 – 我使用旧版本的caching信息页面(我从我的服务器使用APC 3.1.13),现在我已经添加了新的caching信息页面,实际上是说caching没有运行。 另外的问题 – 当3.1.13是我能find的最新版本时,它是如何得到APC 4.0.2的版本的?

在整个网页资源加载过程中,nginx延迟会变得更糟吗?

如果我打开Chrome devtools并进入networking面板,然后做我的网站ctrl + F5,我每次注意到一个模式。 第一个请求,到一个PHP页面,有一个74毫秒的等待时间(等待)。 ping我的服务器需要35ms,所以我非常高兴,发现和服务的PHP页面的开销只有40毫秒左右。 但是随着页面加载资源,大部分需要200ms。 静态jpegs / css / js等 这是“正常的”,如果是这样的话是什么原因呢? 如果我直接浏览一个图像(所以我只加载一个JPEG而没有其他),那么这个请求的延迟往往是在60-70ms的范围内。 我通过SPDY服务该网站,但禁用这似乎没有任何区别 这是我的nginx.conf文件: pid /var/run/nginx.pid; user nginx nginx; worker_processes 6; error_log /var/log/nginx/error.log; events { use epoll; worker_connections 1024; } http { server_tokens off; client_max_body_size 50m; ssl_session_cache shared:SSL:10m; ssl_session_timeout 20m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; ssl_prefer_server_ciphers on; ssl_certificate /etc/pki/tls/certs/ssl-bundle.crt; ssl_certificate_key /etc/pki/tls/private/STAR_mydomain_com.key; ssl_stapling […]

Nginx代理caching对s3的无效请求

我已经从我的应用程序服务器设置了一个代理到一个专用的s3存储区来caching请求。 在s3拒绝我的下载请求(403禁止)时,我遇到了一些麻烦,经过一些实验,看起来禁用caching允许有效的请求通过。 但是代理的全部目的是作为一个caching。 我猜这个代理以某种方式改变了这个请求,但我不明白怎么做。 有没有人有任何洞察如何启用caching在Nginx中改变请求,如果有什么办法来超过这个? 这是相关的configuration。 http { proxy_cache_path /home/cache levels=1:2 keys_zone=S3_CACHE:10m inactive=24h max_size=500m; proxy_temp_path /home/cache/tmp; server { server_name my-cache-server.com; listen 80; proxy_cache S3_CACHE; location / { proxy_buffering on; proxy_pass http://MY_BUCKET.s3.amazonaws.com/; proxy_pass_request_headers on; } } } 如果我删除了行proxy_cache S3_CACHE;

nginx:“位置”作为“服务器”的别名?

我有nginx在/ etc / nginx / sites-enabled中设置了几个服务器 但是,我想将我的设置转换到一个域myserver.com ,所以在浏览器中input lalala.com 将不再让我到相应的/ usr / share / webapps / lalala子文件夹。 因此,我想创build某种types的绑定(如果可能的话),这样,如果我键入 myserver.com/lalala 它会redirect到/ usr / share / webapps,同时仍然应用/ etc / nginx / sites-enabled / lalala的所有configuration 这里是我的conf文件: nginx.conf 服务器示例一ownCloud