我公司的网络正在使用代理.因此,当我使用vagrant up它时,它向我显示了401权限错误.
如何使用vagrant做一些设置?
我正在运行一个带有docker的虚拟机(Ubuntu 13.10)(版本0.8.1,构建a1598d1).我正在尝试使用dockerfile构建映像.首先,我想更新软件包(使用下面的代码 - 代理被混淆)但apt-get超时错误:Could not resolve 'archive.ubuntu.com'.
FROM ubuntu:13.10
ENV HTTP_PROXY <HTTP_PROXY>
ENV HTTPS_PROXY <HTTPS_PROXY>
RUN export http_proxy=$HTTP_PROXY
RUN export https_proxy=$HTTPS_PROXY
RUN apt-get update && apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
我还在主机系统中运行以下命令:
sudo HTTP_PROXY=http://<PROXY_DETAILS>/ docker -d &
Run Code Online (Sandbox Code Playgroud)
主机能够apt-get毫无问题地运行.
如何更改dockerfile以允许它从容器内到达ubuntu服务器?
更新
我在CentOS中运行代码(更改FROM ubuntu:13.10为FROM centos),它运行正常.这似乎是Ubuntu的一个问题.
是否可以在npm install使用NTLM身份验证的HTTP代理后面运行?如果是,我该如何设置服务器的地址和端口,用户名和密码?
我试图遵循文档并创建vite.config.js如下:
const config = {
outDir: '../wwwroot/',
proxy: {
// string shorthand
'/foo': 'http://localhost:4567',
// with options
'/api': {
target: 'http://jsonplaceholder.typicode.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
};
export default config;
Run Code Online (Sandbox Code Playgroud)
并尝试通过以下调用对其进行测试:
fetch('/foo');
fetch('/api/test/get');
Run Code Online (Sandbox Code Playgroud)
我本来期望有实际的请求,http://localhost:4567/foo但http://jsonplaceholder.typicode.com/test/get
它们都以我的开发服务器作为源,如下所示:http://localhost:3000/foo和http://localhost:3000/api/test/get
难道是我理解错了?代理应该如何工作?
我还在 Vite 存储库中创建了一个问题,但它已关闭,而且我不明白结束评论。
我正在构建一个WebClient库.现在我正在实现一个代理功能,所以我正在进行一些研究,我看到一些使用该CONNECT方法请求URL的代码.
但是在我的Web浏览器中检查它,它不使用该CONNECT方法,而是调用GET方法.
所以我很困惑.当我应该使用这两种方法?
我正在使用一台服务器来托管多个Node.js网络应用程序,这些应用程序分布在多个域中.我目前的做法是为不同端口上的每个应用程序运行Express服务器,并运行只是将请求路由(重定向)到正确的端口/ Express服务器的基本服务器.这有效,但这意味着我的基本服务器正在路由每个HTTP请求(并通过手动重定向),并且我的用户将我的应用视为托管在[hostname.com]:8000.
经过一些研究,我发现我可以使用http-proxy来满足我的路由需求,但我仍然想知道在同一系统上运行多个Express服务器是否有最佳实践.这是我计划如何做的:
每个Web应用程序都有自己的文件夹,具有完整的Express文件夹结构(app.js,路由,视图等).应用程序将按域分组,因此示例文件夹结构将是:
hostname.com/
app.js
routes/
views/
...
app1/
app1.js
routes/
views/
...
app2
...
hostname2.com/
app.js
routes/
views/
...
Run Code Online (Sandbox Code Playgroud)
我将不得不分别用节点(或永远,我目前正在使用)运行每个app.js ,并且每个都必须在内部使用不同的端口,并且跨应用重定向指向端口目标应用.
那么,这是我目前的计划.有什么问题,我应该避免哪些陷阱?最重要的是,是否有针对此问题的既定解决方案 - 使用Node.js/Express在同一系统上托管多个Web应用程序的问题?
编辑:我计划最终使用WebSockets和HTTPS,我的设置可以支持的带宽量对我来说并不重要 - 这是一个开发服务器(至少现在).感谢David Ellis提出的WebSockets问题.
第二次编辑:感谢EhevuTov和David Ellis的回答,两者都有很大帮助.我仍在为我的应用程序确定一个整体结构,看起来这个问题通过StackOverflow问题得到了详细解决
第三次编辑:自从发布这个问题以来我已经找到了一些方法(尽管我还有很长的路要走).在我的GitHub存储库中查看这个文件,它利用了我从这个问题的答案中学到的东西!
我使用nginx代理并为我保持远程服务器的持久连接.
我已经配置了大约15个与此示例类似的块:
upstream rinu-test {
server test.rinu.test:443;
keepalive 20;
}
server {
listen 80;
server_name test.rinu.test;
location / {
proxy_pass https://rinu-test;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是如果无法在一个或多个upstream块中解析主机名,则nginx将不会(重新)启动.我也不能使用静态IP,其中一些主机明确表示不会这样做,因为IP会发生变化.我看到这个错误消息的每个其他解决方案都说要摆脱upstream并在location块中做所有事情.这不可能,因为keepalive只有在upstream.
我可以暂时承受失去一台服务器但不是全部15台.
编辑:结果nginx不适合这个用例.应使用备用后端(上游)keepalive代理.我的答案是自定义Node.js替代方案.到目前为止,我还没有找到其他任何实际可行的替代方案.
与实现HTTP Web服务器相比,如何实现HTTP代理,有何区别?是否有关于此主题的权威指南或RFC或有用的书籍?
我很确定这个错误今天才出现,以前从未发生过。当我创建一个新的 React 应用程序时,该过程发现了 1 个高漏洞:
高: 拒绝服务
包: http-proxy
已打 补丁:无可用补丁
依赖: react-scripts
路径: react-scripts > webpack-dev-server > http-proxy-middleware > http-proxy
更多信息: https : //npmjs.com/advisories/1486
(我的“ react-scripts”版本是3.4.1)。当然,“ npm audit fix”不起作用。
我该怎么办?有什么需要关心的,或者我可以正常工作吗?