Articles of 反向代理

configurationNginx代理微caching服务器块中的特定位置

我有一个Django网站,每隔几秒发布新的内容。 我网站主页上的授权用户登陆/ ,而未经授权的用户login/unauth 。 /unauth显示与/unauth相似的内容,但没有任何个人详细信息。 我的网站使用nginx(反向代理)与gunicorn作为上游。 我试图在location/unauth上实现nginx location/unauth ,但到目前为止还是不成功(在/var/cache/nginx什么也没有显示)。 添加add_header X-Cache-Status $upstream_cache_status; 在location/unauth在响应中根本不产生任何东西。 这几乎就像是完全被忽视的(!)。 你能帮我解决这个问题吗? 让我知道如果你想看到整个nginx.conf。 我在我的nginxconfiguration文件中添加了以下内容: #outside the server block proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=6m; #inside the server block location /unauth { add_header X-Cache-Status $upstream_cache_status; proxy_cache my_cache; proxy_cache_lock on; proxy_cache_valid 200 1s; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_buffering on; proxy_buffers […]

Nginx规则只redirect特定的https链接

我已经configurationnginx作为反向代理工具。 我遇到了一个我无法处理的问题。 以下是我在.conf文件中设置的规则。 server { listen 80; server_name rp.mydomain.com; return 301 https://$host/myapp1/; location / { proxy_pass <local ip address>; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto https; proxy_redirect http://$host https://$host; proxy_set_header Host $host; } } server { listen 443 ssl; server_name rp.mydomain.com; location / { proxy_pass <local ip address>; proxy_redirect http:// […]

Nginx反向代理与Laravel的WordPress

我目前正在pipe理一个设置,在domain.com上使用Laravel webapp并在domain.com/blog上运行一个Wordpress博客。 domain.com/blogpath代理到Wordpress博客所在的另一台服务器。 build立 服务器1 基于Laravel运行webapp的nginx webserver: server { listen 80; server_name default.com; return 301 https://www.default.com$request_uri; } server { listen 443; ssl_certificate /etc/letsencrypt/live/www.default.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.default.com/privkey.pem; server_name default.com; return 301 https://www.default.com$request_uri; } server { listen 443 ssl; listen [::]:443 ssl ipv6only=on; root /var/www/html/default/current/public; index index.php index.html index.htm; server_name www.default.com; error_log /var/log/nginx/www.default.com.error.log debug; location / { try_files […]

传递URI查询参数nginx反向代理

我有一个职位服务器监听端口8081和示例path。 我想能够redirect整个URI查询参数的节点服务。 我应该怎么做。 例如,我想要下面的post请求urlhttp://exmaple.com/foo/bar?bla=1 传递给 http://example.com:8081/foo/bar?bla=1 它看起来非常简单和直接的例子,但不能得到它的工作,任何ide? location ^~ /foo/bar { rewrite_log on; rewrite ^/foo/bar(.*) /$1 break; proxy_pass http://example.com:8081/foo/bar; }

nginx websocket upgstream模块开发

我试图让nginx反转代理websocket连接,以便我可以在同一个端口上托pipe一个rails应用程序。 考虑到我们忽略了8字节的内容长度握手问题,我有几个关于这个话题的问题: 如果我要为当前http上游实现1.1 keep-alive,是否允许我使用nginx作为后端node.js websocket服务器实例的反向代理? (和我不知道,如果我正确理解这一点)考虑到我实现上游keepalive,这将意味着客户端和nginx之间的每个连接也导致nginx和node.js后端之间的连接,只要客户端连接到websocket? 如果是这样的话,那么与nginx的连接处理方式有冲突吗? 如果1.持有,你可以给我任何提示,我将如何执行这个? 谢谢,Reza Ps有一个ngx-upstream-keepalive模块不支持http。 http://mdounin.ru/hg/ngx_http_upstream_keepalive/

在nginx反向代理上的应用redirect错误

我正在运行一个nginx(0.7.67)作为反向代理和一个golang应用程序。 nginx服务器configuration如下: … location /bar/ { proxy_pass http://localhost:8088/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } … 我的golang应用程序的来源(这是没有道理的,只是一个例子): func root(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "You reached root") } func foo(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", http.StatusFound) } func main() { http.HandleFunc("/", root) http.HandleFunc("/foo", foo) http.ListenAndServe("localhost:8088", […]

在Nginx的proxy + apache设置中重写URL

我正在与Apache和Nginx的代理python / Django的工作。 我需要转换一些这样的url: www.mydomain.com/client_A/ www.mydomain.com/client_B/ 至 www.mydomain.com/clients/1/ www.mydomain.com/clients/2/ 我将在Nginxconfiguration中进行重写,但问题是这不应该对用户可见,而是应该继续将URL看作www.mydomain.com/client_A/而不是作为内部URL。 主要想法是在Nginx/Apacheconfiguration中执行此操作 提前致谢。

内容types响应头是否必需?

我正在向amazon s3上传各种types的内容(gif,jpeg,png,css,pdf)。 然后,我把Nginx放在S3前面,这样我就可以重写Url,并让它们被azure色的cdn所拉动。 我遇到的问题有时当file upload(各种方式,但主要是JavaScript的http上传),我们经常忽略放置的内容types。 我想弄清楚是否值得花时间让nginx通过一个严重的位置纠正这些头,如果声明或者我应该只删除所有内容types头一起。 例如:当我在Chrome浏览器检查器中查看此url时,我看不到正在返回的内容types标题。 http://img.zgserver.com/nginx/nginx-logo.png 。 我们终于到了浏览器可以自己确定内容types的地步吗? 添加内容types标题是否有任何特定的性能优势? 什么是一个快速的nginx规则来设置基于文件扩展名的内容types? 例如,如果URL是mydomain.com/s3reverseproxy/uploads/test.css?querystring=random正确设置其内容types? 目前我正在使用这个,但担心很多if语句可能是一个坏主意: location ~* ^/s3/(.*) { # Headers based on file extensions more_clear_headers 'Content-Type'; if ($request_uri ~* .*svg.*) { more_set_headers "Content-Type:image/svg+xml"; more_set_headers "X-Content-Type:OverRidden"; } set $s3_bucket 'mybucket.s3.amazonaws.com'; set $url_full '$1'; # HEADERS more_set_headers "Server: PROXYS3"; add_header Cache-Control "no-transform,public,max-age=36720000"; etag on; expires 425d; ….. […]

Nginx的proxy_pass和绝对path

我试图运行一些服务器上的nodejs应用程序(Ubuntu 14.04),使用Nginx,我快完成了。 这是我的服务器configuration( /etc/nginx/sites-available/default ): server { listen 80; server_name my_domain.com; location /test1 { proxy_pass http://127.0.0.1:5000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } location /test2 { proxy_pass http://127.0.0.1:5001/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 我有几个应用程序运行,他们都运行良好,我可以访问http://my_domain.com/test2等… 问题是,在这个应用程序中,我有几个绝对path: 例如<a href="/">Home</a> 或(内部快递) […]

nginx服务器上的超时错误不一致

我有一个应用程序试图从Javascript应用程序的Ajax请求从nginx服务器检索xml文件。 通常情况下一切正常,但我经常在nginx日志中看到错误(并从我的应用程序错误报告中获取错误),nginx在获取期间显示超时: 2015/11/16 21:15:21 [error] 1208#0: *4894044 upstream timed out (110: Connection timed out) while connecting to upstream, client: 209.95.138.54, server: www.servername.com, request: "GET /Shape%20Textures/Metal/Born%20to%20Shine.jpg?agentView=436314 HTTP/1.1", upstream: "http://img.zgserver.com/nginx/Born to Shine.jpg?agentView=436314", host: "www.servername.com.com", referrer: "https://www.servername.com.com/?nid=39956&mode=edit" 我们也有时会得到这个类似的错误: 2015/11/17 19:03:16 [error] 1002#0: *54042 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 137.164.121.52, […]