Articles of nginx

nginx SSL证书过期

我已经为在nginx服务器上托pipe的网站configuration了SSL证书已过期。 我正在尝试更新它。 (我的CA是godaddy)我跟着( https://www.godaddy.com/help/renewing-your-ssl-certificate-864 )获取更新的文件。 现在我有两个crt文件(ffexxxxxxx.crt和gd_bundle-g2-g1.crt)下面给出的是我的nginx conf文件。 ssl_certificate ssl/bundle.crt; ssl_certificate_key ssl/websitename_private-key.pem; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:RSA+3DES:RC4:HIGH:!ADH:!AECDH:!MD5; 我的问题是,如何从新的crt文件中生成一个bundle.crt文件(据我所知,没有必要再生成private-key.pem,如果我错了,请纠正我) PS: – 我的authentication机构是godaddy

http连接和请求之间的关系是什么?

我正在configuration我的nginx ,并且我find了两个模块: ngx_http_limit_conn_module和ngx_http_limit_req_module一个用于限制每个定义的密钥的连接,另一个用于限制请求。 我的问题是,http连接和请求之间的关系(和差异)是什么? 看来,多重请求和使用一个普通的http连接,这是什么原理?

当没有后端可用时,Nginx会为上一页代理服务

想象一下,我们有一个由nginx作为前端,apache(以php或其他)作为后端的网站。 这个想法是,nginx将服务静态,而代理请求* .php文件后端。 易于实施,无需大脑configuration,不是吗? 现在想象我们有坏行为的后端。 它使用了一些不稳定的模块,它用来产生页面几秒钟,我们不确定页面是否被渲染。 奇怪,但仍然有可能,对不对? 遗留代码等。 顺便说一句,后端可能在不同的机器上(是的,传统:旧的操作系统,旧的软件,“甚至不要碰它!”等) 现在我们想在后端不回答的情况下“保护”自己。 如果我们没有页面或得到5xx错误,我们最后一次成功的时候为页面提供服务将会很好。 换句话说,如果后端返回了200个代码和页面内容,那么我们就为它服务。 如果我们得到了超时,或者我们从后端得到了5xx代码,我们为相同的URI提供页面,但是caching了一个。 这会给我们一些时间来修复后端,而用户至less会看到一些东西。 Nginx是一个不错的软件。 我发现proxy_cache_use_stale指令,还有一些其他的,但恐怕如果后端失败,将会提供什么版本。 我也可以想象一些http平衡器(以nginx为例),它将检查后端状态并停止使用它。 然后第二个后端可能是服务器充满了模仿原始网站的静态页面(甚至可能没有一些元素,如“login”链接)。 如果是这样,我应该如何明智地更新“模仿”服务器一段时间? 什么方法可能会更好? 你会select什么?

502坏的网关 – nginx,uwsgi + django在不同的docker集装箱

我有点困难,确定为什么nginx和uwsgi没有为我的django应用程序服务。 这是来自nginx日志的问题。 nginx-01: 2015/12/06 07:47:50 [error] 10#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://0.0.0.0:8001", host: "54.252.197.191" 因此,uwsgi和django使用以下文件设置驻留在一个容器中。 [uwsgi] http-socket = :8001 chdir = %dsrc/myproject/ env = DJANGO_SETTINGS_MODULE=myproject.settings module = myproject.wsgi:application master = true processes = 4 我的docker文件启动uwsgi和我公开端口8001到主机 CMD ["uwsgi", "uwsgi.ini"] 我的第二个容器是nginx有以下nginx虚拟主机设置。 upstream […]

Firefox 42无法访问一个SSL网站

网站https://tremplinsdelimaginaire.com/最近升级密码和SSLconfiguration。 旧的浏览器不再工作,但Ubuntu 14.04上的Firefox 42不起作用(安全连接失败,无法访问网站,没有证书可读,没有任何东西)。 该站点的网站pipe理员没有任何问题,Debian上的Firefox 42。 我怀疑是一个图书馆,但是一个? 其他网站似乎运作良好。 我要求的Web服务器configuration。

服务php-fpm没有获得用户权限

我有一个php-fpm的问题。 它实际上是php7版本。 我有Drupal,它会抱怨某些目录不可写。 只有当我启动php-fpm作为这样的服务: #service php-fpm start 我使用nginx作为web服务器和php-fpm,在端口127.0.0.1:9000。 这是我在/etc/php-fpm.d/www.conf中的conf: ; Start a new pool named 'www'. [www] user = nginx group = nginx listen = 127.0.0.1:9000 web的所有文档 – drupal – 属于nginx:nginx。 如果我开始服务,也是 #service php-fpm start 要么 #systemctl启动php-fpm 它会抱怨权限,即使ps显示(ps aux | grep php-fpm): root 1591 0.0 0.8 528916 31260 ? Ss 07:49 0:00 php-fpm: master process […]

如何阻止来自特定域名TLD的推荐人?

最近,我收到很多来自我的网站的垃圾邮件引用者使用不同的域名,他们都是.ru域名。 我在我的服务器上使用Nginx。 目前我使用下面的代码来阻止stream行的垃圾邮件引用,如我们Semalt,但我不能插入每个.ru域名,他们总是拿出新的。 if ($http_referer ~ "7makemoneyonline\.com|semalt\.com|Get-Free-Traffic-Now\.com) { return 403; } 我的问题是:如何阻止任何.ru域名引用的所有请求,而不会干扰其名称中包含ru字母的其他域名,例如: d ru gs.com ?

Nginx客户端证书authentication:如何排除IP地址

我有Nginx运行作为一个Web服务器的代理,我想保护访问使用TLS / SSL客户端证书。 这是我的SSLconfiguration server { listen 443 ssl; server_name www.domain.com; ssl_certificate /etc/nginx/ssl/domain/server.crt; ssl_certificate_key /etc/nginx/ssl/domain/server.key; ssl_client_certificate /etc/nginx/ssl/clients/client_ca.pem ssl_verify_client on; 它工作得很好 – 但现在我需要允许访问我的网站没有来自一个特定IP地址的客户端证书。 有没有可能性与nginx做到这一点? 谢谢 :-)

nginx位置重写到子文件夹

我将Magento 2安装到根目录下,但Magento 2有一个名为“ rootdirectory/pub ”的根文件夹 – 它可以工作。 但是现在我想要安装Drupal 8并解压缩到“rootdirectory”,并且想要在Domain上显示为子目录“ blog ”,例如Magento 2以外的domain.tld/blog 。 Magento的根configuration为 root /var/www/vhosts/domain.tld/httpdocs/pub Drupal我已经放在/var/www/vhosts/domain.tld/httpdocs/drupal 我可以将它复制到Magento 2 pub目录中,但我认为最好将它放在Magento 2的pub子文件夹之外。 也许重写/drupal的域到/blog ,使其可达? 或者我把httpdocs /作为nginx的vhost根目录,而对于Magento,我将/pub文件夹放在一个位置的根目录下。 任何人有一个想法?

nginx不能在`/ tmp`里面打开一个文件

我试图自动化让我们encryption证书更新过程。 所以我试图使用webroot身份validation方法。 但是我碰到了一个绊脚石。 在试图隔离发生了什么问题,这是我所做的。 在我的网站的configuration,我已经添加了一个位置块的极致挑战: location /.well-known/acme-challenge { default_type "text/plain"; alias /tmp/letsencrypt; } 作为letsencrypt脚本的diea将使用/tmp/lestencrypt存储必要的文件。 但是,为了testing这个,我创build了子文件夹letsencrypt ,并将其编译为777.然后创build一个名为test的文件,内容为“testing”,并将其修改为777。 现在,如果我尝试访问domain.com/.well-known/acme-challenge/test我会得到一个404响应。 看看我的错误日志,我看到了这一行: 2015/12/11 17:38:06 [error] 26593#0: *11 open() "/tmp/letsencrypt/test" failed (2: No such file or directory), client: xxxx, server: domain.com, request: "GET /.well-known/acme-challenge/test HTTP/1.1", host: "domain.com" 我知道这个文件存在,它应该是任何人都可读的,现在我已经把权限设置为777.那么为什么不能find它?