Articles of nginx

Nginx(+ Varnish)在不使用斜线访问url时将端口8080添加到url

我在Ubuntu 14上运行Nginx的Varnish。如果我在我的testing服务器( http://example.com/history )上访问没有斜杠的url,页面加载失败,我得到( http://example.com: 8080 / history / )返回。 在我的服务器{}指令下,我尝试添加 port_in_redirect off; 哪个没用 我发现在另一个post上,proxy_pass之后添加一个proxy_redirect可能工作,但我有我的nginx conf注释掉了proxy_pass。 文件。 (/ usr / share / sites-available / default)中的我的nginxconfiguration文件 server { listen 127.0.0.1:8080 default_server; listen [::]:8080 default_server ipv6only=on; client_max_body_size 30m; root /usr/share/nginx/html; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First […]

尝试重写/ directory / dir_variable / to /directory/dir_variable/index.php

我试图重写这样的东西: domain.tld / staging / base_1 /到domain.tld / staging / base_1 / index.php其中'1'是一个可变数字。 但是得到一个redirect周期。 *1 rewrite or internal redirection cycle while processing "/staging/base_1//index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php …. 这里是我正在使用的位置指令,我已经阅读了文档,这似乎是可行的,但我显然缺less一些东西。 location ~* /staging/(.*) { rewrite ^/staging/(.*)$ /staging/$1/index.php last; }

Nginx用户上传的SSL证书

我想知道什么是让用户上传他们的SSL证书的最佳方式。 我有一个基于rails / passenger / nginx的多租户应用程序,我需要每个用户使用他自己的域名和他的SSL证书。 那么这个问题最好的办法是什么? 我不想上传证书,每次上传新证书时都要在每台服务器上重新加载nginx,这是一个很好的解决scheme。

如何configurationnginx的服务器块指向一个django应用程序?

假设我有一个nginx服务器,Django应用程序设置为“/ djangoapps / exampleapp1 /”和“/ djangoapps / exampleapp2 /”。 假设我刚刚注册了一个域名“www.exampleapp2.com”。 如何将www.exampleapp2.com指向我的django应用程序? 从阅读nginx文档看来,如果我只是在提供静态文件,这似乎是相当简单的。 一旦我扔进Django,它就变得困难了。 我的nginxconfiguration看起来像这样: server { server_name www.exampleapp2.com; location / { # What do I put here? } } server { root /var/www; location /djangoapps { include fastcgi_params; fastcgi_pass 127.0.0.1:8080; fastcgi_split_path_info ^()(.*)$; } }

与Apache共享厨师服务器

我有一台服务器为我们的整个开发团队共享多个基于Web的应用程序。 这台服务器安装了chef-server和apache。 不幸的是,厨师安装的nginx服务器喜欢回答端口80上的所有请求。问题是,我有一个由Apache服务器staging.myproduct.com托pipe的中转站点。 当我尝试访问该网站的主厨API网站服务。 有没有办法,我可以configurationNginx不这样做? 我只是想要它传递请求到Apache服务器或只回答如果是一个厨师相关的URI请求。

nginx位置不响应path名

我已经build立了我的网站文件,但不pipe什么原因别名不起作用。 该站点是一个内部站点,所有媒体文件都保存在服务器上的NAS中。 我试图访问他们使用/video/和/图片/而不是完整的path。 然而无论我尝试他们不会加载。 谁能帮忙? server { listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 #root /usr/share/nginx/www; root /var/www/Misc/public_html; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name Misc; location / { # First attempt to serve request as file, then […]

Nginx的proxy_cache /光油 – 并行请求触发多个请求后端?

我正在寻找一个HTTP反向代理,将以高性能的方式处理HTTP实时stream媒体用例。 假设文件/碎片大小高达4MB,同一文件的客户请求的持续负载非常接近(请求到达,而后端满足第一个请求)。 CDN服务将不会在这里使用。 在下面的每个Nginx和Varnish的事件中发生了什么(请插入你认为更合适的另一个解决scheme)? 客户端1请求反向代理(proxy_cache或Varnish),文件不被高速caching(MISS)。 代理向后端发出请求,并尝试填充本地caching并将响应传递给Client1 当Client1的请求正在被服务(在代理完成之前)时,其他客户对同一个文件的并发请求。 目标是: 代理将在从后端检索文件时阻止其他请求。 代理将在数据到达时同时为所有正在等待的客户端提供服务(当数据到达时,不是在整个文件被缓冲后)。 对于特定的文件,在任何给定时间只有一个后端请求会被创build。 所有的客户端都应该由来自后端的共享响应来提供服务。 例外情况是,如果客户端针对不同的范围进行HTTP范围请求。 哪种解决scheme最适合在像这样要求更大的文件? 如果有任何关键的configuration设置,以达到预期的效果,请分享。 谢谢!

无法将大file upload到nginx后面的服务器作为反向代理

我使用nginx作为反向代理。 在它后面是apache hoo foo.com。 为了上传一个大文件,我在php.ini中设置了post_max_size = 20M和upload_max_filesize = 20M 。 但是我无法上传大小超过2MB的文件。 我的nginxconfiguration是: server { listen 80; server_name .foo.com; if ($http_host != "www.foo.com") { rewrite ^ http://www.foo.com$request_uri permanent; } access_log /var/log/nginx/foo.access.log; error_log /var/log/nginx/foo.error.log; index index.php index.html; location / { proxy_pass http://192.168.1.2:80/; include /etc/nginx/proxy_params; proxy_buffering off; chunked_transfer_encoding on; } } 另外我configurationnginx.conf如下: http { … sendfile on; tcp_nopush […]

如何让nginx等待代理应用程序正在加载,如Heroku?

由于各种原因,我们已经从Heroku搬到自我托pipe。 Heroku的一个方面,我还没有能够重现,但是当我们的应用程序重新启动,该网站立即开始给502坏门错误,直到应用程序完成加载。 然而,在Heroku中,它将保持连接,所以浏览器只会旋转,直到应用程序完成加载,然后才返回响应。 有没有办法configurationNginx的行为相似? 请注意下面的“可能的重复…”评论没有被接受的答案,并且一个upvoted的答案对REST调用没有帮助。

两个域,相同的NS和弹性IPredirect

我有两个领域 example.com和example-x.com – 前者是所有stream量应该到达的主要域。 两个域都指向相同的名称服务器,并且每个域都在Route53中具有单独的托pipe区域。 我目前有example.com指向我的Elastic IP作为Alogging,然后通过nginxredirect到www.example.com。 我正在尝试将example-x.comconfiguration为指向相同的弹性IP,并将其路由到www.example.com。 我在Route53中创build了两个托pipe区域,并将example-x.com的名称服务器设置为example.com的名称服务器。 我错过了什么? 这甚至有可能吗?