我觉得我一定是错过了一些明显的东西…但是这里就是这样。 题 是否可以configuration一个Nginx的代理,使其不会修改HTTP请求的URI? 怎么样? 背景 我有一个Nginx反向代理(A)在转发代理(B)的前面。 在A的configuration是一个简单的香草反向代理设置,看起来像这样: upstream upstreamproxy { server 192.168.0.69:80; } location / { proxy_set_header Host $http_host; proxy_pass http://upstreamproxy; proxy_redirect off; proxy_buffering off; } 转发代理B也是普通的香草,所以期待看到这样的代理请求: GET http://www.example.com/foo HTTP/1.1 User-Agent: curl/7.30.0 Host: www.example.com Accept: */* Proxy-Connection: Keep-Alive 问题是,反向代理A重写HTTP请求URI如下所示: 发出示例请求: my-client$ curl –proxy http://<proxy-A IP address>:80 http://www.example.com/foo 看看代理A正在做什么: proxy-A$ ngrep -W byline tcp and port […]
我试图通过使用nginx回声支持回复一个自定义的504页面,但由于一些奇怪的原因,当这是活跃的浏览器下载响应,而不是打开它。 server { listen 80; proxy_intercept_errors on; server_name localhost; location @fallback { add_header Content-Type "text/html; charset=UTF-8"; add_header Content-Disposition 'inline; filename="504.html"'; # when this line is enabled I get the download behavior! # when this is not active, I get a 200 response, which is not desired echo_status 504; echo "<!DOCTYPE html>"; echo "<html lang='en'>"; echo […]
我试图通过一个PHP脚本来告诉nginx使用X-Accel-Redirect进行内部X-Accel-Redirect 。 由于脚本提供了许多types的文件,我只希望为字体添加Access-Control-Allow-Origin标头。 这是我尝试过的configuration: location /deploys/ { internal; alias /www/deploys/; expires 1y; add_header Access-Control-Allow-Origin *; } 这种方法的问题是现在所有的文件都包含Access-Control-Allow-Origin头文件。 我只想要我的字体有这个头。 所以,我尝试了一个条件: location /deploys/ { internal; alias /www/deploys/; expires 1y; if ($request_filename ~* ^.?/([^/]?)$) { set $filename $1; } if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){ add_header Access-Control-Allow-Origin *; } } 不幸的是,这不起作用(我怀疑这是由于使用X-Accel-Redirect的内部redirect)。 如何使用X-Accel-Redirect为一些扩展添加Access-Control-Allow-Oirgin头?
我目前使用Nginx与NodeJs,我试图编辑我的nginx.conf文件,以允许caching。 以我目前的设置下面我有SSL和GZIP工作,但我怎么能添加caching? 我得到一个错误404.我的文件有以下结构:/ root / Poplive / Dec5 / public 公开我有一个文件(main-built.js)和文件夹(/ javascripts / css),这些是文件和文件夹即时尝试caching。 我试过…. 1)我把下面的指令放在我的nginx.conf下面的位置/ {}中 location ~* /.*\.(/javascripts|main-built.js)$ { expires 24h; } 结果,没有caching,但GZIP的作品 下面的Nginx.conf events { worker_connections 1024; } http { upstream myapp { server 127.0.0.1:3100; } #Add Gzip sendfile on; keepalive_timeout 2; tcp_nodelay on; gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 5; […]
我有一个nginxbuild立与ssl certifivate。 最近我注意到,build立到该服务器的连接有时会花费太长时间(8+秒)。 在Chrome开发者工具中,我可以看到,所有的时间都进入了连接阶段。 dynamic内容(php)和静态(html,css)都存在问题。 与此同时,服务器对同样的非SSL请求做出完美的响应。 对于每个请求都不会发生这种情况,但是会导致很多ajax请求超时(其中一些对服务至关重要)。 我试图按照这个指南: http : //unhandledexpression.com/2013/01/25/5-easy-tips-to-accelerate-ssl/但它没有帮助。 任何想法我怎么能find问题的根源? 任何潜在的修复?
我想知道是否有像Apache的mod_status为Nginx的Web服务器,基本上我想知道所有正在处理的请求,由Nginx进程.. 这可能吗 ?
我正在使用nginx将多个域映射到谷歌应用程序引擎。 在这个特定的情况下,我将多个域映射到同一个租户 。 在我的代码中有一个configuration知道哪个域是主域,当请求进来我检查主机是否是主域,如果不是我redirect到主域。 例如,假设www.aaa.com是默认设置的域 aaa.com -> www.aaa.com www.bbb.com -> www.aaa.com ccc.com -> www.aaa.com … 偶尔随机发生的事情是JavaScripturl进入nginx的redirect循环。 请注意,请求不会触及appengine。 nginx正在创build这个302 Found循环。 这在过去两周里发生了两次。 请求path类似于www.aaa.com/22/foobar.js ,其中path的第一部分是JavaScript文件的版本号。 具有相同uri格式的css文件www.aaa.com/22/foobar.css不会有这个redirect循环。 如果我部署新版本,文件将再次正确服务。 所以部署一个版本23和访问www.aaa.com/23/foobar.js将再次工作。 另外如果我使用像www.aaa.com/22/foobar.js?345重新启动nginx请求caching或甚至重新启动nginx运行的机器没有帮助。 build立一个具有相同的确切configuration的新机器没有问题的文件服务。 那么可能会导致这个redirect循环? 一旦发生,我怎么能摆脱它? 有没有在Nginx的caching(我知道Nginx默认情况下不caching)我不知道? 该机器可能caching这些redirect? 这里是我的nginx.conf user nginx; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server_names_hash_max_size 1024; server_names_hash_bucket_size 128; […]
我正在尝试在https 14.04上使用nginx 1.6.0进行httpredirect,以防止病毒,并且不起作用。 这是病态的configuration: upstream sickbeard { server localhost:8081; } server { listen *:80; server_name sb.mydomain.com; server_tokens off; root /nowhere; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443 ssl; server_name sb.mydomain.com; server_tokens off; ssl on; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_certificate server.crt; ssl_certificate_key server.key; location / { proxy_pass […]
开放免责声明:我对这个问题涉及的技术有各种各样的新手。 但谷歌,她没有屈服 – 一个果实。 我正在尝试将Rails应用程序部署到生产环境中。 这个应用程序工作正常使用WEBRick。 我也使用AWS gem从S3中检索数据。 我用Passenger安装并设置了Nginx。 当我打开页面我正在testing我得到这个错误: /home/ec2-user/.gem/ruby/2.0/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:223: `@@{' is not allowed as a class variable name /home/ec2-user/.gem/ruby/2.0/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:223: syntax error, unexpected end-of-input unless defined? @@{:instance_writer=>false} ^ (SyntaxError) 我猜想关于Nginx / Passenger / Who-Knows在AWS代码上感到窒息,但是再次使用WEBRick,我不会得到这个错误。
我有一个网站( https://mediacru.sh ),有几个版本。 有正常的桌面网站,黑暗的主题相同的网站,和移动网站。 他们都共享相同的url。 主题是用cookieselect的,移动版本是基于用户代理显示的。 我已经在我们的nginxconfiguration中设置了caching。 我们每秒可以获得500个请求,而且我需要保留很多stream量,所以一切都保持健康。 我已经设置了一个1或30秒的caching(取决于网站的哪一部分被caching),但是这具有caching一个用户的页面并将错误的页面提供给其他人的不幸的副作用。 我可以做些什么来调整caching,以识别这些不同的情况是唯一的? 我们之前在nginx和后端之间build立了varnish,但是我们没有做任何特别的事情。 它可能会适合我们的需求吗?