我正在开发angular度4.1.0的MEAN项目。 在我的本地主机上,一切正常无误。 但是,当我部署到服务器时,检索具有8个以上问题 – 答案对的用户会导致angular色的http模块触发的xhr请求出现net :: ERR_CONNECTION_CLOSED错误。 我所托pipe的数字海洋液滴使用nginx反向代理,并使用letsencrypt SSL证书。 我努力了: 重新启动服务器,nginx服务,node.js等 在nginxconfiguration文件中增加client_max_body_size为20M 在nginxconfiguration文件中增加large_client_header_buffers的大小为128k 其他重要事实: GET请求qapairs?jwt=ey..永远不会到达node.js应用程序 在/var/log/nginx/error.log没有提及请求 /var/log/nginx/access.log中显示的失败请求如下所示: 89.15.159.19 – – [08/May/2017:14:25:53 +0000] "-" 400 0 "-" "-" 89.15.159.19 – – [08/May/2017:14:25:53 +0000] "-" 400 0 "-" "-" 请指点我可能的方向。 chrome开发工具networking标签截图 login后只有7个问题答案对的帐户 然后,去mlab.com并手动添加另一个问题答案对同一个帐户,然后刷新页面(注意现在8问题的数量) 最后,login和退出同一个帐户(注意xhr请求qapairs?jwt=ey…返回失败状态) 在/ etc / nginx的/启用的站点- /默认 # HTTP — redirect all traffic to HTTPS […]
我们有一堆通配符子域(_foo.example.com,bar.example.com等),当通过HTTPS访问时,应该redirect到我们安全域上的等效子域。 一些例子: https://foo.example.com => https://foo.secure.com https://foo.example.com/some/path => https://bar.secure.com/some/path https://bar.example.com => https://bar.secure.com 我认为这可以用nginx重写来完成,但我不确定语法。 这是我正在尝试: server { listen 443; server_name *.example.com; rewrite ^(.*) https://*.secure.com$1 permanent; } 这显然不会工作,因为我没有捕获传入的子域,并在重写中使用它。
最近我一直在做一个django应用程序,终于准备好部署到qa和生产环境了。 一切工作本地完美,但由于增加了真实世界部署的复杂性,我有几个问题。 首先,我的技术堆栈有点复杂。 对于部署,我使用aws来部署我的站点部署在负载均衡器支持的多个ec2上。 负载均衡器使用ssl进行安全保护,但负载均衡器的连接通过端口80上的标准http被转发到ec2。在端口80上发送ec2后,它们被转发到端口8000上的docker容器(如果您不熟悉docker工人只是认为它是一个标准的虚拟现实)。 在容器内部,nginx监听端口8000,它处理django中的静态文件的redirect,并将它请求转发给127.0.0.1:8001上运行的django。 Django由端口8001上的uwsgi监听。 server { listen 8000; server_name localhost; location /static/ { alias /home/library/deploy/thelibrary/static/; } location / { proxy_set_header X-Forwarded-Host $host:443; proxy_pass http://127.0.0.1:8001/; } } 我使用X-Forwarded主机,因为我有谷歌oauthredirect的问题和redirect提示用户login使浏览器请求URL 127.0.0.1:8001这显然不会工作。 在我的settings.py文件中,我也包括在内 USE_X_FORWARDED_HOST = True 强制django使用正确的主机redirect。 现在一般的网站浏览工作完美,静态文件加载,redirect工作和网站是安全的SSL。 但问题是CSRFvalidation失败。 在表单提交中,我得到以下错误 Referer检查失败 – https://qa-load-balancer.com/projects/new不匹配https://qa-load-balancer.com:443/ 。 我真的不知道该怎么做,它真的通过stackoverflow的问题,我得到了一切工作到目前为止。
我有一个Ruby on Rails应用程序,在模板中具有以下内容… <form action="<%= request.original_url %>" method="post"> 当我通过https请求页面时,我最终得到的表单操作与原始请求具有完全相同的url,而不是https://生成为http:// ,导致混合内容错误。 我错过了什么? 在什么情况下request.original_url返回错误的scheme? 我使用Unicorn和nginx运行Ruby on Rails。
我正在build立一个Rails的博客。 我正在使用Rails 5和Devise 4.2.0。 该应用程序运行在Ubuntu服务器与Nginx和彪马生产,并与Capistrano部署。 一切工作都很好,直到在Nginx上启用HTTPS(具有有效的SSL证书)并向HTTPS添加301redirect表单HTTP为止。 我检查了生产日志,日志中的真实性密钥与我在浏览器中看到的不一致。 这里是我使用的nginx.conf文件: upstream puma { server unix:///home/deploy/apps/example-blog/shared/tmp/sockets/example-blog-puma.sock; } server { # Redirect HTTP to HTTPS # Bind port(s) listen 80; listen [::]:80; # Bind domain(s) server_name blog.example.com; # 301 redirect to HTTPS return 301 https://$server_name$request_uri; } server { # Primary server block # Bind port(s) listen 443 default_server ssl; […]
这是我的yo_nginx.conf文件: upstream django { server unix:///home/ubuntu/test/yo/yo.sock; # for a file socket, check if the path is correct } # Redirect all non-encrypted to encrypted server { server_name 52.89.220.11; listen 80; return 301 https://52.89.220.11$request_uri; } # configuration of the server server { # the port your site will be served on listen 443 default ssl; # […]
尝试运行该命令时出现这个奇怪的letsencrypt错误 $ certbot certonly –standalone –email example@gmail.com –agree-tos -n -d trumporate.com,www.trumporate.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Obtaining a new certificate Performing the following challenges: tls-sni-01 challenge for trumporate.com tls-sni-01 challenge for www.trumporate.com Waiting for verification… Cleaning up challenges Failed authorization procedure. trumporate.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify […]
我使用nginx和mongodb在ec2上运行了一个nodejs / express应用程序。 我正在运行一个8核心ec2实例,我有8个独立的nodejs应用程序运行在nginx前面。 现在,我只有一个服务器。 我们即将上线,并希望确保我们的服务器只响应SSL请求。 我想知道如何以及在哪里configurationSSL连接。 我将列出有序列表中的问题,并高度赞赏您在回答问题的全部或部分时是否可以参考问题编号。 这对我来说不仅容易,对于读这个线程的其他人也是如此。 他们来了: 我将不得不像verisign一样去CA来获得证书,对吗? 我的域名是通过godaddy注册的,我可以从他们那里获得SSL证书吗? 我是否需要在ec2实例上安装证书? 如果是的话,如果我必须添加另一个服务器的HA,我想使用弹性负载平衡会发生什么? 在这种情况下,我是否需要为每个ec2实例购买单独的证书? 有人可以指点我一些文档或教程,如何configurationSSL的Nginx? 一旦ssl打开,我如何确保所有非ssl连接自动redirect到ssl端点? 我可以轻松地通过nginx中的configuration条目吗? 任何帮助或指针在正确的方向非常感谢。 –su
我正在试图做一个使用redis作为后端的Java应用程序 。 由于Redis是一个非常快速的键值存储,所以我希望使用这个存储,但redis被用于1个客户端,所以它没有用户选项:通过身份validation。 我想find一种方法来实现某种身份validation,所以我尝试了nginx的redis2扩展。 我这样做是因为我可以使用客户端的证书和HTTPS。 但是这使得我的应用程序非常慢。 我正在考虑使用某种通过nginx代理连接到redis的隧道。 对于这个redis会在本地主机上监听,并且会有一个地址我想用来访问redis,但是使用httpsauthentication。 所以基本上我现在的方法 JAVA – Jedis – LAN – REDIS ,would be JAVA – Jedis(with localhost as the tunnel entrance?)- -SSL LAN – Nginx(tunnel exit) – Redis 任何提示实现这一点? 我一直在网上search最后的日子,但我不能提出任何事情,只增加了一点本地连接的开销。
首先,这听起来更像是一个错误,然后是其他任何东西。 我的Rails应用程序由Unicorn提供。 然后,使用Nginx作为反向代理,我使用SSL将应用程序提供给外部世界。 到目前为止这么好,没有问题。 我正在使用相对path(Restfulpath助手),所以应该没有问题产生( https://www.example.com ): new_entry_path => https://www.example.com/entries/new 这在大多数情况下工作正常。 但是,当我在一个控制器尝试redirect到“显示”操作(使用资源)时,出现了这个问题,假设成功更新(假设条目为100): redirect_to @entry, flash: {success: "Entry has been updated"} 要么 redirect_to entry_path(@entry), flash: {success: "Entry has been updated"} 他们都会产生一个redirect到: http://www.example.com/entries/100 # missing 's' in https… 代替 /entries/100 # implying https://www.example.com/entries/100 据我注意到,这只发生在show动作,只有在控制器redirect。 我通过做一些可怕而令人厌恶的事情绕过了这个: redirect_to entry_url(@entry).sub(/^http\:/,"https:"), flash: {success: "Entry has been updated"} 有没有人遇到类似的东西? 任何想法将被感激地接受…