Articles of nginx

奇怪的访问请求

在我的访问日志中,我有这样的一些请求: [18 / Dec / 2014:10:07:51 +0300]“GET /favicon.ico HTTP / 1.1”301 184“ – ”“Mozilla / 5.0(Windows NT 6.1; rv:6.0)Gecko / 20110814 Firefox / 6.0 Google图标” [18 / Dec / 2014:11:35:11 +0300]“GET http://s1.bdstatic.com/r/www/cache/static/home/img/logos/nuomi_ade5465d.png HTTP / 1.1”301 184 “ – ”“Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.3; Trident / 7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.3072; .NET […]

在nginx错误日志中:“SSL_BYTES_TO_CIPHER_LIST:不合适的回退”

我们最近改变了我们的nginxconfiguration,以支持TLSv1.2以及一些更安全的密码。 自更改以来,我们的nginx错误日志已填充以下错误: 2015/01/28 23:55:57 [crit] 16898#0:* 18712916 SSL握手,客户端:SSL_do_handshake()失败(SSL:错误:140A1175:SSL例程:SSL_BYTES_TO_CIPHER_LIST:不适当的回退) 。 。 。 ,服务器:0.0.0.0:443 我们的nginxconfiguration如下: server { root /var/www/fl/current/public; listen 443; ssl on; ssl_certificate /etc/nginx/ssl/wildcard.pem; ssl_certificate_key /etc/nginx/ssl/wildcard.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; 我们收到了一些关于用户无法访问该网站的电子邮件。 一位用户表示这是他们在Firefox中遇到的错误: 安全连接失败 在与******.com连接期间发生错误。 服务器拒绝握手,因为客户端降级到比服务器支持的更低的TLS版本。 (错误代码:ssl_error_inappropriate_fallback_alert) 您尝试查看的页面无法显示,因为收到的数据的真实性无法validation。 如果我理解正确,那么当客户端使用比它和服务器支持的更低版本的TLS时,回退警报是一种安全防范措施。 考虑到我们现在支持更高的协议版本,这个错误似乎很有意义。 我不明白的是,为什么当连接到我们的网站时,这个改变会导致一些用户的问题。 这是我们的configuration或浏览器中的错误吗? 我们现在在Qualys SSL服务器testing中得到一个“A”,所以我犹豫回到我们的旧configuration。

nginx简单的正则expression式位置

如果url的前5个数字是数字,我需要在nginx中设置一个位置参数。 site.com/12345/ or site.com/12345 但我不能为了我的生活似乎得到正确的正则expression式。 这些都没有工作。 location ^/([0-9]) { } location ^/(\d\d\d\d\d) {} location /(\d\d\d\d\d) {}

如何将http请求redirect到https(nginx)

似乎有很多问题和指导,指示如何设置nginxredirecthttp请求到https。 许多已经过时了,或者只是错了。 # MANAGED BY PUPPET upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } # setup server with or without https depending on gitlab::gitlab_ssl variable server { listen *:80; server_name gitlab.localdomain; server_tokens off; root /nowhere; rewrite ^ https://$server_name$request_uri permanent; } server { listen *:443 ssl default_server; server_name gitlab.localdomain; server_tokens off; root /home/git/gitlab/public; ssl on; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key […]

在Centos 7(64位)上使用epel repo无法安装nginx

我刚刚构build了一个64位的Centos服务器,我正在尝试安装NGINX。 使用epel 7(testing版)回购时,在尝试安装时出现以下错误: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.as29550.net * epel: mirror.vorboss.net * extras: centos.hyve.com * updates: centos.mirroring.pulsant.co.uk Resolving Dependencies –> Running transaction check —> Package nginx.x86_64 0:1.0.15-5.el6 will be installed –> Processing Dependency: perl(:MODULE_COMPAT_5.10.1) for package: nginx-1.0.15-5.el6.x86_64 –> Processing Dependency: libpcre.so.0()(64bit) for package: nginx-1.0.15-5.el6.x86_64 –> Finished Dependency Resolution […]

Service Nginx不起作用

我在debian(jessie v8.2)系统上编译了源码nginx v1.9.6。 但是它不能按预期工作。 1.9.3版本没有任何问题。 当我尝试运行service nginx start我得到这个消息: 无法启动nginx.service:单元nginx.service加载失败:没有这样的文件或目录。 我使用这些参数进行configuration: configuration参数:–prefix = / etc / nginx –sbin -path = / usr / sbin / nginx –conf -path = /etc/nginx/nginx.conf –error -log-path = / var / log / nginx / error.log –http-log-path = / var / log / nginx / access.log –pid-path = / var / […]

这是一个合理的方式来缩放Nginx的静态内容服务?

我需要设置一些VPS来提供静态内容(很多小文件)。 我打算为此使用Nginx,并希望将其设置为使我们能够相对容易地扩展。 要求是: 许多文件(至less数十万)。 小文件大小(小于10KB) 文件被邻居服务器上的应用程序不断添加。 新文件必须立即可用于所有Nginx服务器。 我目前的计划是: 有一个包含所有文件的NFS共享的“主”服务器。 生成新文件的应用程序仅与主服务器交互。 有多个Nginx服务器挂载这个NFS共享。 在Nginx实例之间进行负载平衡。 一个明显的问题是,“主”服务器是单点故障(对此有任何补救措施?)。 还有其他潜在的问题,我忽略了吗? 这里有哪些元素不能很好地扩展? 有人会build议一种替代方法? 关于内存要求,我假设我应该尽可能地给每个Nginx服务器,以便热文件可以被caching(通过OS?Nginx?),不必从NFS共享中不断地被请求。 最后, 我疯了,不使用CDN?

Firefox尝试打开http子域为https

我在nginx中configuration了domain.com和sub.domain.com。 domain.com有ssl证书,而sub.domain.com没有。 无论我尝试在任何现代浏览器中打开http://sub.domain.com (firefox,chrome,即使在没有插件的干净的浏览器中),它都会将我redirect到https://sub.domain.com并给我一个错误,因为我的ssl证书只适用于domain.com。 不过wget不会redirect我: $ wget -O /dev/null http://sub.domain.com –2014-08-15 09:49:00– http://sub.domain.com/ Resolving sub.domain.com (sub.domain.com)… XXXX Connecting to sub.domain.com (sub.domain.com)|XXXX|:80… connected. HTTP request sent, awaiting response… 200 OK Length: unspecified [text/html] Saving to: '/dev/null' 2014-08-15 09:49:00 (1.23 MB/s) – '/dev/null' saved [15807] 这是domain.com的nginxconfiguration server { # Redirect all http to https listen XXXX:80; server_name […]

在哪里放置Nginx IP黑名单configuration文件?

我有一个Nginx Web服务器托pipe两个网站。 我创build了一个blockips.conf文件,将IP地址列入黑名单,这些IP地址会不断探测服务器,并将其包含在nginx.conf文件中。 然而,在我的网站的访问日志,我仍然看到这些IP地址出现。 我是否需要在每个站点的conf中包含黑名单,而不是Nginx的全局configuration文件? 这是我的nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; 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 /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; # Load virtual host configuration files. […]

扩展大文件下载?

我们目前通过一台Apache服务器提供大容量(1GB +)的文件,但是我们的Apache服务器非常受磁盘IO限制,我们需要扩展。 我的第一个想法是简单地复制这个Apache服务器,但是我们的文件库太大了,不能简单地横向扩展Apache服务器N次。 所以我的下一个想法是在后端有两个Apaches(高可用性),每个都有一个单独的我们整个库的副本。然后在前面的“N”反向代理,其中“N”随着我们的交付需求增长而增长。 每个反向代理的内存很大,每个GB的主轴数量尽可能多。 后端的Apache服务器更“档案化”,主轴到GB低。 这是一个很好的build筑吗? 有更好的方法来处理它吗?