我试图遵循弹性beanstalk上的nginx配置,有些东西不加起来.
该实例在安全组中打开端口80,因此我假设所有传入流量都来自该端口
cat /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf中的nginx配置指出:
server {
listen 8080;
location / {
proxy_pass http://nodejs;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
gzip on;
}
Run Code Online (Sandbox Code Playgroud)
8080港口?那个是从哪里来的?我试图弄乱它,这是正在运行的实际指令.
server_name丢失了,但是你输入的内容并不重要.如果我自己在server_name中放置任何值,则此服务器规则仍将匹配所有请求,即使是那些远程不能重置server_name值的请求.
连接到实例本身时,似乎两个端口都在服务:
[ec2-user @ ip-172-31-45-222~] $ sudo netstat -lnptu
tcp 0 0 0.0.0.0:8080 0.0.0.0:*LISTEN 22506/nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:*LISTEN 22506/nginx
再一次,8080永远不会在安全组中打开,因此弹性负载平衡通过端口80进入内部.流量是否神奇地从80升到8080?有什么想法在这里发生了什么?
文档(http://developer.android.com/guide/topics/manifest/manifest-element.html#uid)仅说明我不能使用原始字符串及其添加的API级别,但不解释原因我想用它.如果我已经将android:sharedUserID设置为"com.foo.bar"我应该在android:sharedUserLabel引用的字符串中放入什么值,最重要的是为什么!?
谢谢
我有一个与后端服务器一起使用的移动应用程序,我想了解使用Facebook登录(创建帐户)然后保持整个系统同步的最佳做法.
以下是我目前所了解的: - 移动应用程序可以在设备上进行登录并获取access_token - 访问令牌可以传输到服务器.我使用与某些api.myhost.com/auth/facebook路由挂钩的passport-facebook-token进行了概念验证,似乎我可以验证用户身份并检索他的FB数据.因此,我可以将他与我的数据库中的现有用户匹配或创建新记录.
我不明白:1)我必须使用https将FB令牌传输到我的服务器吗?
2)如何处理我应该进行身份验证的其他请求.我不认为每次请求都可以选择FB.想到的一个选项是生成另一个(我自己的)访问令牌,并作为FB身份验证的结果返回它.
最简单的方法是使用passport-facebook-token会话(以便cookie会话ID可以序列化并反序列化为用户ID).但这意味着我需要为会话维护一些KV存储空间.
另一种方法是为该用户生成我自己的随机令牌,在成功登录时将其与用户ID一起返回,将其存储在用户记录中,并让来自客户端的每个API调用提供此id /令牌对,并在每次手动重新验证它们时依靠护照.或者可能依靠护照本地策略?
哪一个更好?每个人的利弊是什么?
2)如果我打算使用FB令牌发布到FB并进行图形分析(朋友等),我打算将令牌存储在服务器上.我需要多久刷新一次?每次应用程序启动并刷新客户端上的令牌时,我是否应该使用新的FB令牌对我的服务器进行重新身份验证?如何通过服务器到服务器调用刷新用户FB令牌?如果我想保持对用户FB数据的访问权限,但是用户是否停止使用我或者很少使用它,我是否应该这样做?
有没有一个工作方案的食谱很好?
谢谢!
我正在尝试为具有许多具有自动保存功能的字段的模型实现编辑器.
该模型是json,它加载了$ resource并直接在范围中使用.
Run Code Online (Sandbox Code Playgroud)MyModelResource = $resource(config.api4resource + 'models/:id', {id:'@_id'}); $scope.myModel = MyModelResource.get({id: xxxx});
问题#1: 实际的自动保存实现.对于我正在做的每个文本字段:
HTML:
Run Code Online (Sandbox Code Playgroud)<input type="text" ng-model="myModel.someField" ng-blur="save()" ng-change="dirty()">
控制器:
Run Code Online (Sandbox Code Playgroud)$scope.dirty = function() { $scope.dirtyFlag = true; console.log('Marking dirty!'); }; $scope.save = function(force) { if (!$scope.dirtyFlag && !force) { return; } $scope.dirtyFlag = false; console.log('Saving!'); $scope.myModel.$save(); }
这个想法是,节省每次ng-change都太昂贵了,因为我不希望像用户类型那样为每个字母命中服务器.所以ng-change()在我的控制器中标记了一个"脏"标志,当我离开具有ng-blur的字段时,我检查标志并仅在状态为脏时保存.这仍然不包括所有情况,例如用户修改文本字段但未移动到另一个字段的情况.有一个选项可以在dirty()中为save()安排一个计时器,这样我无论如何都会保存,但这看起来不像是一个优雅的解决方案(来自https://stackoverflow.com的计时器代码)/ a/21137079/1076865):
Run Code Online (Sandbox Code Playgroud)$scope.dirty = function() { $scope.dirtyFlag = true; console.log('Marking dirty!'); if (savePromise) { $timeout.cancel(savePromise); } savePromise = $timeout(function() { savePromise = null; $scope.save(); }, 500); }; …
我想知道使用弹性beanstalk部署复杂node.js的最佳实践是什么,而不依赖于外部npm存储库的可用性(以及处理内部开发的软件包的凭据和私有管理git存储库的高可用性).
看起来有一种思想流派,它实际上将node_modules检入到实际部署的项目的源树中.
来源1:http://www.futurealoof.com/posts/nodemodules-in-git.html
来源2:http://eng.yammer.com/managing-node-js-dependencies-and-deployments-at-yammer/
所以听起来像是检查它们是正确的方法,但是对于某些已编译的软件包存在不同的二进制格式问题(在mac上开发并部署到linux)
我尝试过做yammer家伙建议(签入模块除了bin文件夹),但即使那时本地"npm rebuild"命令失败(它试图chmod在bin.in文件夹中不存在的bin文件夹中的东西)所以我甚至没有试图看看beanstalk默认部署环境将对这样的存储库做什么.我假设它运行"npm install"(它什么都不做),但它会运行"npm rebuild"吗?
那么,再次,部署具有多个依赖项的复杂项目的最佳实践是什么?现在在node/beanstalk世界中它一定是一个已经解决的问题,不是吗?
谢谢
我想我并不完全理解require.js的工作方式.这是我创建的一个简单模块:
requirejs.config({
paths: {
'underscore' : 'libs/underscore-min',
'backbone' : 'libs/backbone-min'
}
});
define([
"underscore",
"backbone"
], function(_, Backbone) {
console.log(_);
console.log(Backbone);
var MyCollection = Backbone.Collection.extend({
initialize: function() {
this.on("all", function(event) {
console.log(event);
});
}
});
return MyCollection;
});
Run Code Online (Sandbox Code Playgroud)
我从我的HTML加载它:
<script data-main="js/mycollection.js" src="js/libs/require.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
问题是它间歇性地工作.有时我需要Backbone对象在函数中,有时它不会(并且给我http://requirejs.org/docs/errors.html#notloaded错误).如果我只是在浏览器中重新加载,我会得到50/50的更改工作.
我必须在这里遗漏一些非常基本的东西,报告的错误对我没有任何意义,我认为require.js机制的全部想法是只有在加载所有依赖项时才会调用我的函数.
node.js ×2
android ×1
angularjs ×1
autosave ×1
backbone.js ×1
javascript ×1
manifest ×1
nginx ×1
npm ×1
requirejs ×1