Articles of rest

Nginx / gunicorn Django Rest Framework应用程序的端口代理

我使用gunicorn和nginx将传入的请求路由到我的Django Rest Framework API。 gunicorn在端口8001上运行,nginx在端口8000上运行。nginx被configuration为根据以下configuration文件将请求转发到gunicorn: server { listen 8000; server_name ec2-ww.xx.yy.zz.compute-1.amazonaws.com; # public address of my server, redacted for stack overflow access_log /vol/logs/ftv.access.log; location ^~ /static/ { alias /vol/server/ftv/static/; autoindex on; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) { #access_log off; expires 30d; } location / { proxy_pass_header Server; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_connect_timeout […]

Nginx路由到几个RESTful端点

我想使用Nginx作为HTTP代理服务器。 在后端,我们有三个用Java编写的应用程序,每个应用程序都暴露一个RESTful API。 每个应用程序在API上都有自己的前缀。 例如: APP 1 – URI prefix: /api/admin/** APP 2 – URI prefix: /api/customer/** APP 3 – URI prefix: /api/support/** 在前端,我们有一个SPA页面向这些URI发出请求。 有没有办法告诉Nginx根据URI前缀路由HTTP请求? 提前致谢!

如何正确configurationNginx的Node.js REST API?

我有一个运行在Apache和Nginx服务上的节点应用程序作为反向代理。 在同一台服务器上还运行一个Node REST API。 JavaScript代码如下所示: api.js // Express const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); // Express App const app = express(); // Env const PORT = process.env.PORT || 3000; const NODE_ENV = process.env.NODE_ENV || 'development'; // Config app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cors()); // Routes const users = require('./routes/users'); […]

使用Nginx作为代理来避免CORS

我有这个: 现在我想使用我在那里的nginx服务器来提供所有的静态文件,并将所有的请求代理到api.stuff.com。 这可能吗? nginx是做这件事的最佳工具吗? configuration是什么? 谢谢!

使用nginx的Django REST框架绝对URL总是返回127.0.0.1

我有一个应用程序在nginx后面运行gunicorn / django(用django-rest-framework),而且在使用hyperlinkedmodelserializer模型串时,剩下的框架返回了一个url。 他们总是返回像http://127.0.0.1/而不是我的主机名。 你能帮忙吗?

Magento 1.7 REST API nginx重写规则。 api.php没有执行

所有如果我打开链接http://example.com/api/rest/products ,它只是下载api.php,而不是脚本执行。 它可能是什么? 有我的nginx网站的magento规则 location /api { rewrite ^/api/rest /api.php?type=rest break; } location / { index index.html index.php; try_files $uri $uri/ @handler; expires 30d; } location ~ (/(app/|includes/|lib/|/pkginfo/|var/|report/config.xml)|/\.svn/|/.hta.+) { deny all; } location ^~ /(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; } location /var/export/ { internal; } location /. { return 404; } location @handler { rewrite / /index.php; […]

AngularJS:通过https服务$资源,从https到http的angular度交换

我在我的AngularJS项目中build立了一个ng资源,它从REST API获取数据。 在开发和testing环境(都运行在http)一切工作正常。 但是,在生产中,由于No 'Access-Control-Allow-Origin' header错误,REST请求失败。 整个页面通过https提供,因此我希望Angular的请求也会通过https。 我使用相对path(例如/ api /)设置资源,但AngularJS似乎从https更改为http。 我的问题 什么可能导致请求http而不是https甚至与相关的APIurl? 有没有什么好的Angular文档如何处理$http或resource https请求? 这可能是与Nginx的服务器configuration问题? 对我来说,似乎Angular只是从https自动切换到http。 完整的错误消息 XMLHttpRequest cannot load http://www.example.com/api/data/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.example.com' is therefore not allowed access. AngularJS资源设置 .factory('Data', ['$resource', function($resource){ return $resource('/api/data\\/', {}, { query: { url:'/api/data/', method: 'GET', isArray: true} }, { stripTrailingSlashes: […]

AngularJS $ http.post()到另一个端口在同一台机器上

我有一个AngularJS应用程序托pipe在本地主机上的nginx服务器上,而Rest服务托pipe在本地主机上的Weblogic:7001上。 我正在尝试在Angular部分内部做这个post: $http.post('localhost:7001/testApp/user/login', { username: username, password: password }) .success(function (response) { callback(response); }); 这是我得到的错误: XMLHttpRequest cannot load localhost:7001/testApp/user/login. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

NginxcachingREST API

我们有一个移动应用程序调用REST API来获取在移动主屏幕上显示的图块列表。 身份validation机制是使用我们唯一标识用户的AUTH令牌。 菜单不断变化,取决于应用程序的版本。 为此,我们有两种方法。 /api/tilemenus (仅传递validation标题而不是版本) 检索auth头并在db表中查找应用程序的版本(我们也将用户版本存储在数据库中,并在用户升级应用程序时进行更新)并相应返回数据。 /api/tilemenus/1.2.2 (由于客户端知道它自己的版本,所以/api/tilemenus/1.2.2传递auth头文件和版本) 在这里,因为版本在REST请求本身中传递,所以不需要数据库查找。 哪种方法更好? 我认为方法2更好,因为我们可以传递caching头来caching每个版本的API。 对于方法1,当用户升级应用程序时,没有隐含的方式来放弃这个caching。

如何连接nginx到我的java模块

我真的是这个主题的初学者,我需要一些有用的文章和你的指导。 我想要构buildRESTFul API Web服务。 作为一个http服务器selectnginx 。 但我不知道(无法find任何文章)任何关于如何将我的查询redirect到我的java模块,它处理请求,并返回JSON到nginx 。 如果我对后端types的想法不正确,请帮我弄清楚这个…