小编Dra*_*n D的帖子

nginx如何将proxy_pass转换为代理

我有一个nginx服务器正在运行.我想向公司代理发出一些请求并将结果返回给客户端.

让我们说客户端发出请求http://ip:port/redirect/google.com,服务器应该以https://username:password@ip_proxy请求的url作为参数发出请求.

我发现了一些与我的问题相近的问题:

http://serverfault.com/questions/732063/nginx-proxy-pass-reverse-proxying-behind-corporate-firewall

http://stackoverflow.com/questions/11865119/how-to-configure-nginx-behind-a-corporate-proxy

假设205.100.100.100:80是代理URI和代理 XXVzYTQzMjXXXDpCb25qXXyMQ==的凭证

一说我们应该重写url然后将其传递给proxy_pass指令

location ^~ /redirect/ {
        rewrite ^/redirect/(.*) https://google.com;
        proxy_pass_header on;
        proxy_set_header Proxy-Authorization "XXVzYTQzMjXXXDpCb25qXXyMQ==";
        proxy_pass https://205.100.100.100:80;
}
Run Code Online (Sandbox Code Playgroud)

我认为它不能正常工作,因为它显示为重定向(http代码301)

另一个说我们应该使用Host头并用它指定原始url:

location ^~ /redirect/ {
        proxy_pass_header on;
        proxy_set_header Host "https://google.com";
        proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
        proxy_pass https://205.100.100.100:80;
}
Run Code Online (Sandbox Code Playgroud)

不行.他们还说代理读取指定为url参数的url类似于:http://proxy:port/url_requestedso:

location /redirect { 
    rewrite ^/redirect/(.*)"http://205.100.100.100:80/https://google.com" break; 
    proxy_pass_header on;
    proxy_set_header Proxy-Authorization "XXVzYTQzMXXXpCb25XXyMQ==";
    proxy_pass http://corporate-proxy.mycorp.com:8080; 
}
Run Code Online (Sandbox Code Playgroud)

应该管用 ?

如您所见,我不知道如何指定代理的用户名,密码.我尝试了一个没有结果的Proxy-Authorization标题"XXVzYTQzMjXXXDpCb25qXXyMQ==".

我也尝试了http_upstream模块,没有结果.我无法使用,proxy_pass http://user:pwd@205.100.100.100:80因为nginx使用":"来解析端口,它给了我指定端口的错误.

我该怎么办?

也许它来自整个配置或他们使用代理的方式?不知道.

nginx

7
推荐指数
1
解决办法
4728
查看次数

将 mat3 转换为 mat4 的最简单方法

我提取了 mat4 的左上角 3x3 旋转矩阵:

glm::mat4 model;  
glm::mat3 rot = glm::mat3(model);
Run Code Online (Sandbox Code Playgroud)

现在我想要单位矩阵,左上角是我的新 mat3

在此输入图像描述

最简单的方法是什么?

glm::mat4 result;
result[0] = glm::vec4(rot[0], 0);
result[1] = glm::vec4(rot[1], 0);
result[2] = glm::vec4(rot[2], 0);
result[3] = glm::vec4(0, 0, 0, 1);
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

matrix glm-math

6
推荐指数
1
解决办法
8658
查看次数

clang,构造函数声明中首先需要隐式模板实例化

这是我的问题的简单版本:

#include <iostream>

template<typename T>
class Extractor
{
public:
    static const int& value;
};

class Bar
{
    
};

template<typename T>
class Foo
{
public:
    Foo() {
        m_value = Extractor<Bar>::value;
    }
    
public:
    int m_value;
};

int gValue = 42;
template<> const int& Extractor<Bar>::value = gValue;

int main()
{
    Foo<Bar> test;
    std::cout << " Hello, world " << test.m_value << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

g++ 没有给出错误并且显示正确。

clang 返回以下错误消息:

1184815205/source.cpp:30:39: error: explicit specialization of 'value' after instantiation
template<> const int& Extractor<Bar>::value = gValue;
                                      ^
1184815205/source.cpp:22:35: …
Run Code Online (Sandbox Code Playgroud)

c++ templates clang

1
推荐指数
1
解决办法
112
查看次数

标签 统计

c++ ×1

clang ×1

glm-math ×1

matrix ×1

nginx ×1

templates ×1