介绍 – 场景 我对Linux服务器configuration和Microsoft Azure云服务相对较新。 我有一个虚拟机,在Ubuntu 16.04之上,有一个由Nginx,Varnish,PHP7-FPM,MariaDB,FAIL2BAN组成的堆栈。 WordPress的多站点安装。 据我所知,在Nginx和Varnish .conf文件以及Wordpress安装中,所有configuration都是正确的。 港口80和443都打开。 主domaind和联网站点域都parsing为虚拟机的IP。 所有这些都是使用debops-wordpress(Ansible项目的扩展)部署的。 问题 问题是主站点工作正常,但所有networking站点导致ERR_EMPTY_RESPONSE错误。 据我所知,这些请求没有生成日志。 例如, varnishlog会在我请求主域时报告所有预期的清漆活动(批)。 当我请求联网的网站域时,它根本不会产生任何活动。 我从这里得出结论,这个请求甚至从来没有通过清漆。 日志文件 当我为联网网站(Wordpress多站点)发出http请求时,会将基本条目写入光油访问日志。 (见下文)。 但Nginx日志中没有条目。 并且在Varnish或Nginx错误日志中没有条目。 ::ffff:122.57.253.24 – – [17/Jul/2017:01:58:35 +0000] "GET /favicon.ico HTTP/1.1" 204 0 "http://www.sewalunafoundation.nz/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" 所以域请求至less要通过堆栈,但是会以空的响应错误中止。 我在想,也许我忽视了Azure方面的一些东西,那就是阻止任何联网站点域的请求实际到达服务器堆栈。 虽然我不太确定,但由于必要的端点(80和443)是开放的,并且对于主要域名工作良好,而且现在我看到次级(WP联网)域名至less足以创build清漆一个日志条目的事实,这是我认为这是不可能的networking相关。 组态 漆 server […]
urlteste.oficial.news/my1返回状态404,和teste.oficial.news/other状态400 …但文件和PHP都很好。 server { server_name teste.oficial.news; root /var/www/teste; index index.php index.html index.htm; location / { try_files $uri $uri/ @proxy; } location @proxy { rewrite (my[23])$ ETC.php?cmd=$1 last; rewrite other$ index.html break; proxy_pass http://127.0.0.1; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } include snippets/ssl-oficial.news.conf; } #end server 什么是worng?
考虑以下设置。 每个请求是否会检查1.2.3.4的可用性,还是nginx将服务器标记为失败,并且每隔一段时间只尝试一次重试? upstream backend { server 1.2.3.4:80; server 4.5.6.7:80 backup; } server { listen 80; server_name domain.com; location / { proxy_pass http://backend; } }
我最近在Amazon Lightsail的Ubuntu实例上安装了nginx 1.13.1。 Ubuntu版本是16.04 Xenial操作系统。 Nginx使用Nginx.org软件包库进行安装。 安装之后,默认的nginx.conf将用户指定为: user nginx; 我使用下面的命令启动了nginx: sudo service nginx start 在检查nginx的状态时使用: ps -ef | grep nginx 我发现工作进程是由nginx用户拥有的。 现在,根据网上提供的各种资源,人们build议使用“www-data”作为用户。 我有关上述情况的查询是: nginx和www-data用户的安全权限是否有区别? 如果更安全,我应该将用户更改为“www-data”吗? 我是Linux和nginx的新手,所以任何帮助将不胜感激。
我负责使用客户端证书进行身份validation的节点应用程序。 如果我使用HTTPS从浏览器直接连接到此应用程序,系统会提示input我的客户端证书,并且按预期工作。 如果我禁用https并将其作为使用proxy_pass的启用了HTTPS的nginx(使用相同的服务器密钥和证书)的HTTP服务器运行,则不会提示input客户端证书。 如果我在节点应用程序上使用https,我似乎无法通过代理从nginx传递它。 我已经尝试将proxy_pass http:// my-upstream-entry改为https:// my-upstream-entry ,但在此之后,在nginx错误日志中收到类似于以下内容的消息: 2017/07/26 17:55:10 [error] 6687#6687: *380 upstream prematurely closed connection while reading response from upstream, client: 192.168.10.1, server: _, request: "GET /login HTTP/1.1", upstream: "http://127.0.0.1:1234/login" 基于此,我有两个问题: 如何将proxy_pass传递给启用了TLS的节点服务? 是否可以从应用程序传递客户端证书请求,然后将生成的证书传递给proxy_passed目标? 谢谢,
我正在用nginx反向代理和gunicorn应用程序服务器开发一个Django应用程序。 作为一个新手的Web开发人员,我需要帮助redirect到no www服务器级别的wwwstream量。 我目前在应用程序中的中间件级别做同样的事情,但需要提高性能。 目前我的nginx虚拟主机文件的布局如下: proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=6m; upstream my_server { server unix:/home/myuser/myproject/myfolder/myproject.sock fail_timeout=0; } server { listen 80; server_name example.com www.example.com; # a bunch of 'location' blocks eg 'location /' or 'location @http_proxy_to_app', etc. } server { listen 443 ssl; server_name example.com www.example.com; # SSL related stuff # a bunch of […]
我有一个example.com和www.example.com的证书和以下configuration: server { listen 443 ssl; listen [::]:443 ssl; server_name example.com; return 301 https://www.example.com$request_uri; } 我正在尝试redirect到www.example.com ,它在我访问https://example.com时起作用。 我成功redirect。 但我不明白为什么它的作品。 301redirect应该通过SSL进行,但是我没有指定证书。 它怎么能工作? 另外,什么是build议的方式来做到这一点? 只是在上面的块中添加证书?
我遇到了一个奇怪的问题。 我有一个自定义的configuration和编译版本的NGINX(我想安装几个额外的编译时间模块)。 无论什么原因,它创buildclient_temp作为一个文件,而不是一个目录,每当我尝试上传一个文件,这导致500内部服务器错误。 我的configuration: –prefix=/opt/nginx –sbin-path=/usr/local/sbin/nginx –conf-path=/opt/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp –http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=www-data –group=www-data –with-http_ssl_module –with-http_realip_module –with-http_gunzip_module –with-http_gzip_static_module –with-threads –with-file-aio –with-ipv6 –with-http_v2_module –with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=native' –add-module=../ngx_cache_purge-2.3 –add-module=../headers-more-nginx-module –add-module=../ModSecurity-nginx 正如你所看到的,我确实为client_temp指定了一个path:– –http-client-body-temp-path=/var/cache/nginx/client_temp ,但它是一个文件而不是目录。 我是否需要手动创buildclient_temp作为目录并删除文件? 还是有另一种方法来纠正这种情况?
谢谢你的阅读。 我有一个testing服务器,我试图使用SSL / TLS实现encryption通信。 通信是在IIS(远程服务器上的web服务器,其中asp.net应用程序已经发布)和NGINX之间进行的。 当NGINX向IIS发送一个证书请求时,IIS正在向NGINX发送一个空的证书。 在Windows服务器中的中间证书是NGINX所期待的。 我发现ASP.NET应用程序的SSL证书和中间证书之间有一个断开的链接。 这是内部开发环境,所以ssl / tls通信应该只使用自己分配的证书来build立。 个人证书快照 现在,当我使用在线检查器检查SSL时,我收到以下快照。 SSL在线检查器 我相信这里断开的链接可能是缺乏encryption通信的原因。 我不确定。 感谢您阅读我的文章。
我在centos 7服务器上安装了让我们encryption yum install epel-release yum install certbot-nginx 并用server_name opvietnam.com www.opvietnam.com;configurationnginx.conf server_name opvietnam.com www.opvietnam.com; 之后,我重新加载nginx打开防火墙与端口443和生成ssl certbot –nginx -d opvietnam.com -d www.mywebsite.com 一切OK,但我configuration选项2.Oneay,我想删除它的? 我尝试testing域。 在testing域中逐步安装并search如何删除单个域上的LetsEncrypt。 顺便说一下,我在这个网站上看到了WTF的内容。 我用他的教程的方式 rm -rf /etc/letsencrypt/archive/[testdomainname]/ rm -rf /etc/letsencrypt/live/[testdomainname]/ rm -rf /etc/letsencrypt/renewal/[testdomainname].conf [恐慌]。 当我再次安装ssl在另一个域。 它显示了一个错误 Saving debug log to /var/log/letsencrypt/letsencrypt.log Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Obtaining a new certificate Performing the […]