Articles of nginx

Nginx使用SPDY(3.1)报告HTTP / 1.1状态代码是否正确?

问题 我是否必须查看诸如X-Firefox-Spdy类的响应标题来确定实际使用的协议? 我可以假设一旦实现完成后,Nginx会报告HTTP / 2状态代码,因为这是预期的行为,或者是有一些状态代码我不知道? 通过撰写这个问题find的信息: Nginx忽略客户端的HTTP 1.0请求,并通过HTTP 1.1进行响应 启用S​​PDY的Apache显示HTTP / 1.1而不是2.0 调查和细节 我目前正在检查我的服务器设置,我对我在浏览器的开发者控制台中看到的http状态码感到困惑。 我的服务器运行带有更新版本的Nginx( PPA )的Ubuntu 14.04。 Nginxconfiguration为使用SPDY和自签名证书。 由于Qualys SSL Labstesting报告服务器提供了SPDY 3.1(当然还有大量的浏览器插件),但是HTTP/1.1 200是否正确,我认为SPDYconfiguration正确? 这是来自我的服务器的完整请求: Request-URL: https://myserver/lib/dojo/something.js?123456789 Request-Methode: GET Status-Code: HTTP/1.1 200 OK Request-Header 13:50:30.000 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0 Referer: https://myserver/index.php Pragma: no-cache Host: myserver DNT: 1 Connection: keep-alive Cache-Control: […]

我可以使用NGinx中的响应对象吗?

我正试图在testing环境中logginghttpstream量,以便以后用Gor回放。 到目前为止,我有以下configuration,使用后的行动转发请求到我有Gor监听的端口有效地窃听响应 server { listen 85; server_name localhost; location / { proxy_pass http://mymachine.mydomain.com; post_action @post_action; } location @post_action { proxy_pass http://localhost:87; } } 无论如何,我可以处理从第一次的反应,穿梭在别的地方? NGinx是这个函数的错误工具吗? 最终目标是请求 – >端口1和响应 – >端口2,以便Gor可以logging文件中看到的所有内容

当通过HTTP访问时,域会自动强制HTTPS

我有一个基于Nginx + Node.js的项目。 当我试图通过我的域访问它时,它会自动从HTTPredirect到HTTPS,并得到一个404,因为我的部署尚未准备好用于SSL。 当它尝试通过HTTPS进入时,请求甚至不能到达N​​ginx,或者至less它不会在访问日志中显示任何内容。 因此,我假设这是强制HTTPS而不是服务器本身的域。 域可以有一些国王的头或选项启用自动强制HTTPS? 谢谢!

Nginx听不同的端口,但不能从外部访问

操作系统:Ubuntu 12.04 我有Apache和Nginx运行。 Apache正在监听端口80,这就是为什么我要让Nginx监听不同的端口,在这个例子中,它将是90。 下面是/etc/nginx/sites-available/example.com上的configuration(是的,创build了符号链接): server { listen 90 default_server; server_name www.example.com.pl; root /var/www/example.com; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } } 我configuration了防火墙, ufw status显示: To Action From — —— —- 90 ALLOW Anywhere … 我也添加了规则到iptables: Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp — anywhere anywhere tcp […]

nginx刷新上游服务器IP

我有一个Django容器和一个nginx提供静态文件的Docker设置。 我有nginxconfiguration的标准方式: upstream main_web { server web:8000; } server { location / { proxy_pass http://main_web; #… } } 我使用/etc/hosts条目来获取Django容器的IP地址。 当我重新启动Django容器时,其IP地址更新,这反映到hosts文件。 但nginx不断给出一个502 Bad Gateway错误。 事情工作正常,当我手动重新启动nginx。 没有办法告诉nginx再次parsingIP,如果它不可达?

nginx proxy_pass将端口号添加到URL

我有一个标准的Rails应用程序部署到Heroku。 我正在使用自定义buildpack来安装nginx,所以我可以创build一些重写规则和反向代理。 除了一个问题我主要工作。 我有以下的location定义代理通过所有的url/博客/到另一个应用程序的URL。 location ~* ^/blog/?(.*) { set $forward_host 'another.app.com'; set $url_full '$1'; resolver 8.8.8.8 valid=300s; resolver_timeout 10s; # always add trailing slash rewrite ^([^.]*[^/])$ $1/ permanent; index index.html; proxy_hide_header Set-Cookie; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header Host $forward_host; proxy_ignore_headers "Set-Cookie"; proxy_buffering off; proxy_intercept_errors on; proxy_redirect off; proxy_pass http://$forward_host/$url_full; } […]

https和http的nginx总是以http方式结束

这是我第一次尝试安装一个nginx反向代理。 我想要的是我有一个在端口44801上运行http的Subversion服务器。 现在我想用nginx来监听端口80,转发,而且在443上监听,做ssl终止然后转发。 这是我的conf文件: server { # Port 80 only on local network listen 80; server_name freundx; location /svn { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://freundx:44801/svn; } } server { # ssl is local and external listen 443 ssl; server_name freundx some.domain.com; ssl_certificate /etc/niginx/ssl/mycert.crt; ssl_certificate_key /etc/niginx/ssl/mycert.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; location […]

如何让nginx简单地将请求传递给转发代理服务器?

在我的企业转发代理之后。 当我在本地testing我的应用程序时,对于某些请求,我希望将nginxconfiguration为将这些请求proxy_pass传递给某些外部域服务器。 下面是我的configuration,而这是行不通的。 我总是得到502错误的网关错误。 所以我想这是因为我在一个公司代理? 如何configurationnginx只需将请求传递给转发代理? location ~* ^/proxy/(.*) { proxy_pass http://services.odata.org/$1$is_args$args; } 我想要达到的是:

检测操作系统和NGINX之间的stream量丢失

我有一个运行NGINX&Redis的分析跟踪Linux服务器(EC2上的Ubuntu)(这个项目 – https://github.com/FTBpro/count-von-count ) 当我浏览NGINX日志时,发现与其他指标相比,stream量降低了30%,NGINX错误日志没有显示任何可疑的情况。 我的猜测是,在stream量窥视下,服务器/机器只是无法处理所有传入的stream量。 我虽然关于调整机器和NGINX以获得更好的性能,但在这之前,我想validation我的理论, 所以我想知道: 1)有没有办法看到操作系统和NGINX之间是否有一些stream量被“丢弃”(即机器可以处理stream量,但是NGINX太忙)? 2)有没有办法查看机器本身是否无法处理所有的stream量? 谢谢。 ————————–到目前为止的结论——————— —— 1)这个博客文章非常好地解释了NGINX的监测。 基本上它使用Seva Kobylin在他的答案中推荐的存根模块。 我也开始免费试用DataDogHQ,它提供了一个非常好的监控和可视化简单的解决scheme。 2)不幸的是,上面还是没有回答我的第二个问题,但至less我在第一部分有一些可见性,所以这是:-)

Nginx https反向代理在Amazon EC2中设置

我在Amazon EC2上运行Ubuntu 14.04.3和Nginx 1.4.6。 我试图在8000端口上为我的应用程序设置一个反向代理,当我访问www.mywebsite.com:8000时,我可以看到它正在运行。 反向代理应将所有httpstream量redirect到https,然后为该应用程序提供服务。 这是我的网站启用configuration: server { listen 80; server_name mywebsite.com return 301 https://$host$request_uri; } server { listen 443 ssl; server_name mywebsite.com access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ssl on; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/key.key; keepalive_timeout 60; ssl_ciphers HIGH:!ADH:!MD5; ssl_protocols TLSv1; ssl_prefer_server_ciphers on; proxy_buffers 16 64k; proxy_buffer_size 128k; location / { proxy_pass http://IPADDRESS:8000; proxy_next_upstream error timeout […]