Articles of nginx

如何使用带有身份validation的Nginx使用用户目录

我正在使用基于Debian的主机,并使用Nginx和PHP-FPM,我想在nginx中启用用户目录,并希望多用户支持基本身份validation。 这意味着当亚历克斯打开www.example.com/rutorrent; 这将提示login名和密码,并authentication后,这应该指向自己的版本的PHP脚本位于/ home / alex / www / rutorrent当鲍勃将打开www.example.com/rutorrent;这将提示login和密码和身份validation后,这应该指向他的PHP脚本位于/ home / bob / www / rutorrent。 我已经试过这里的官方文档: http : //wiki.nginx.org/UserDir 但我不知道如何configuration他们到默认文件,以便我可以得到我想要的function,我的默认configuration文件的nginx在这里: server { server_name localhost; location / { try_files $uri $uri/ /index.html; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } index index.php index.html index.htm; location ~ ^/~([^/]*)(.*)\.php$ […]

SPDY是否改善从非SPDY CDN提供的资产交付?

所以我的网站是SPDY。 我所有的本地资产也都是SPDY。 但是我的大部分资产都是从Rackspace的CloudFiles CDN提供的。 这不是 SPDY。 这些文件是否通过SPDY以某种方式stream式传输,还是通过单独的繁琐的HTTP请求进入? 我目前有这些CDN资产分为3个不同的子域。 我应该将它们合并为一个(因为是SPDY文件的首选服务方法,以减lessDNS查找),还是应该让它们保持原样,因为它们是通过常规HTTP 1.1来的? 谢谢,我找不到任何体面的信息通过谷歌search。

Nginx的前向保密(CentOS6)

我正在尝试使用nginx webserver在CentOS中启用Forward保密function。 我曾经尝试过 我已经阅读了一些教程,似乎我们应该有nginx,openssl最新版本来启用它。 所以我从源码安装了openssl。 sudo wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz sudo tar -xvzf openssl-1.0.1e.tar.gz cd openssl-1.0.1e sudo ./config –prefix=/usr/local sudo make sudo make install 现在OpenSSL支持椭圆曲线密码(ECDHE)。 我也用openssl s_servertesting了这个。 它运作良好。 接下来,我用最新的代码replace了Nginx。 sudo wget http://nginx.org/packages/centos/6/x86_64/RPMS/nginx-1.4.2-1.el6.ngx.x86_64.rpm sudo rpm -e nginx sudo rpm -ivh nginx-1.4.2-1.el6.ngx.x86_64.rpm 并按照此链接中的描述configurationNginx ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+RC4:EDH+aRSA:EECDH:RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; http://baudehlo.wordpress.com/2013/06/24/setting-up-perfect-forward-secrecy-for-nginx-or-stud/ 但是现在Nginx不支持ECDHE密码。 它支持DHE密码。 我试图通过在Nginx中启用ECDHE密码仍然不起作用。 我正在使用最新的网页浏览器(chrome 29,它支持这个密码) 我错过了什么? 或与CentOS或Nginx有问题? […]

检查IP是谁在nginx上访问我的网站

我真的不想知道这件事,因为我想保持它真正的私密性,并尽可能给我的访问者的隐私(不是说我的博客是受欢迎的)。 我刚刚安装了Ubuntu的nginx从数字海洋与Ghost预装,但以前我与Wordpress。 现在(在我写作的这一刻),我不断看到这个日志 POST /bidRequest?exchange=smaato 500 2ms – 19b POST /bidRequest?exchange=smaato 500 1ms – 19b POST /bidRequest?exchange=smaato 500 1ms – 19b POST /bidRequest?exchange=smaato 500 2ms – 19b POST /bidRequest?exchange=smaato 500 1ms – 19b POST /bidRequest?exchange=smaato 500 1ms – 19b POST /bidRequest?exchange=smaato 500 2ms – 19b POST /bidRequest?exchange=smaato 500 3ms – 19b POST /wp-admin/admin-ajax.php 500 2ms […]

nginx在端口81上没有响应

我只是安装和configurationnginx监听端口81.我没有更改nginx.conf文件,删除sites-available/default ,在sites-available添加了一个dystroy.org文件: server { listen 81; root /var/www/dystroy; index index.html index.php; server_name dystroy.org www.dystroy.org; location / { try_files $uri $uri/ /index.html; } } 我把它链接起来: dystroy@server:/etc/nginx$ ls -al sites-available/ total 12 drwxr-xr-x 2 dys dys 4096 Nov 19 11:19 . drwxr-xr-x 6 dys dys 4096 Nov 19 10:31 .. -rwxr-xr-x 1 dys dys 190 Nov 19 […]

解决新的Nginx安装的步骤

我正在运行Ubuntu 12.04的新服务器上设置Nginx。 以下是我迄今为止所做的: 安装nginx: aptitude -y install nginx 删除了默认的vhostconfiguration: rm /etc/nginx/sites-enabled/* 添加了我自己的虚拟主机configuration: mv myapp.conf /etc/nginx/sites-enabled/ 入门nginx: service nginx start 虚拟主机文件看起来像这样: upstream unicorn_server { server unix:/tmp/APP_NAME.sock fail_timeout=0; } server { listen 80 default deferred; client_max_body_size 4G; server_name _; keepalive_timeout 5; access_log /var/log/nginx/APP_NAME.access.log; root /var/www/APP_NAME/current/public; # auth try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For […]

如果文件名作为parameter passing不退出,则redirect到404

我在uri中有特殊的参数data=/path/to/filename.htm 。 它的老旧生锈的网站build在SSI上,我不能修改它。 问题是当文件名作为arg_data不存在,页面被破坏。 在这种情况下我想redirect到404.htm。 类似的东西: if (!-f $arg_data){ rewrite ^.*$ /404.htm last; } 但是我得到: 在处理“/404.htm”时重写或内部redirect周期 我想这是因为我没有检查if arg_data存在。 但是nginx没有嵌套if -s。 我试过了: set $data index.htm; if ($args ~ "data=(.+)") { set $data $1; } if (!-f $data) { rewrite ^.*$ /404.htm last; } Idea将$data设置$data 100%存在的某个文件,并且在数据参数通过后重写。 由于某种原因,它给出了相同的错误,内部redirect周期 看起来我做错了。

vhosts和SSL之间的Nginx问题

我有两个站点在相同的IP与以下configuration: site1.com 多个子域(即:foo.site1.com,bar.site1.com) 一切听着港口80,没有在443 site2WithSSL.com 监听端口80和443(SSL) 我可以访问https://site2WithSSL.com和http://site1.com 没有问题。 当有人想访问https://site1.com时,问题出现了,nginx与site2WithSSL.com的答案我想避免这种情况。 我的意思是,只要有人访问https://site1.com,就不需要返回内容,或者只是redirect到https :// configuration是: server { listen 80; server_name *.site1.com; // … } server { server_name www.site2WithSSL.com; return 301 $scheme://site2WithSSL.com$request_uri; } server { listen 80; listen 443 ssl; server_name site2WithSSL.com; ssl_certificate site2WithSSL.crt; ssl_certificate_key site2WithSSL.key; // … } 解决:每个网站使用不同的IP

如何使一个现有的cachingNginx的代理使用另一个代理绕过防火墙?

我的问题是关于使用Nginx作为另一个代理的代理。 (有点混淆) 我想设置Nginx,所以它作为一个npm镜像caching代理服务器。 这里是链接: http : //eng.yammer.com/a-private-npm-cache/ 在不受防火墙限制的本地机器上,以下configuration工作正常: proxy_cache_path /var/cache/npm/data levels=1:2 keys_zone=npm:20m max_size=1000m inactive=365d; proxy_temp_path /var/cache/npm/tmp; server { listen 80; server_name classen.abc.lan; location / { proxy_pass http://registry.npmjs.org/; proxy_cache npm; proxy_cache_valid 200 302 365d; proxy_cache_valid 404 1m; sub_filter 'registry.npmjs.org' 'classen.abc.lan'; sub_filter_once off; sub_filter_types application/json; } } 现在我想把它应用到一个额外的防火墙后面的服务器。 在日志中,我可以确认它访问正确的上游IP,但由于内部防火墙,请求失败。 我们有一个内部代理,我可以绕过防火墙,例如: $ curl http://registry.npmjs.org curl: (7) couldn't connect […]

隐藏从nginx的访问日志中获取参数

我想启用访问日志,以便查看有关我们的服务的统计信息,我遇到的问题是访问日志格式的$请求,保存所有的GET参数(这是有道理的,因为它的请求的一部分) 但我想隐藏这些信息,所以不要在日志中看到这些信息: 98.207.174.147 – – [26/Apr/2014:23:59:09 +0000] "GET /v1/api.json?parameter1=value1&paramter2=value2" HTTP/1.1" 200 13449 "-" "httperf/0.9.0" 我想看看 98.207.174.147 – – [26/Apr/2014:23:59:09 +0000] "GET /v1/api.json" HTTP/1.1" 200 13449 "-" "httperf/0.9.0"