标签: reverse-proxy

Apache反向代理设置SSL证书

我们需要在 Apache 反向代理上设置安全证书。我们被告知需要使用虚拟主机指令。

我在 O'Reilly 的书中查找过这些内容,但找不到任何专门使用 https 的示例。

有谁有任何配置片段的示例来执行此操作?

apache ssl reverse-proxy ssl-certificate

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

从 Gitlab 重定向后,HTTPS 方案在 Apache 代理场景中丢失

我设法在我的服务器上使用 Apache 前端设置 Gitlab。由于默认的 SSL 端口已被占用,我添加了一个

Listen 444
Run Code Online (Sandbox Code Playgroud)

到 Apache 端口和 VirtualHost 之类

<VirtualHost *:444>

  ServerSignature Off

  SSLEngine on
  SSLCipherSuite ALL:!ADH:!EXP:!eNULL:!aNULL:RC4+RSA:+HIGH:-MEDIUM:!LOW:-SSLv2
  SSLCertificateFile /etc/apache2/ssl/server.crt
  SSLCertificateKeyFile /etc/apache2/ssl/server.key

  RewriteEngine on
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://unicornservers%{REQUEST_URI} [P,QSA,L]

  ProxyPreserveHost On
  ProxyPass /uploads !
  ProxyPass /error !

  <Proxy balancer://unicornservers>
    BalancerMember http://127.0.0.1:8081 
    ProxyPassReverse https://my.server.de:444/
  </Proxy>

  # needed for downloading attachments
  DocumentRoot /home/git/gitlab/public

  <Location />
    Order deny,allow
    Allow from all
  </Location>

  LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
  ErrorLog  /var/log/apache2/gitlab.error.log
  CustomLog /var/log/apache2/gitlab.forwarded.log common_forwarded
  CustomLog /var/log/apache2/gitlab.access.log …
Run Code Online (Sandbox Code Playgroud)

apache https proxy reverse-proxy gitlab

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

Nginx 重定向反向代理 404

我有以下 Nginx 服务器块:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /usr/share/nginx/html;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://localhost/page-1/;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望当用户在 example.com 上收到 404 错误时,proxy_pass应该更改为直接访问http://localhost/example-404/.

然而,这个服务器块和两者的服务器块http://localhost具有相同的root,所以或者它可以只指向/example-404/内部,我不确定哪个更容易做到。不管怎样,我希望浏览器地址栏中的地址保持不变。

我想要这个的原因是如果http://localhost直接访问服务器将会有一个不同的404页面。我真的很感激任何人对此的想法!

error-handling proxy reverse-proxy nginx vhosts

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

Jenkins/Apache 反向代理错误

根据我的搜索,我遇到了一个似乎相当常见的问题,但是我已按照我遇到的所有说明和/或修复进行操作,但没有一个对我有用,所以我问这个希望有人可以引导我走向正确的方向。

我在 OS X 10.11.2 上通过 Homebrew 安装了 Jenkins 1.644。我按照这些说明如何在 OS X Server 5.0.15 网站内安装和设置它(我相信此版本的 OS X 服务器正在运行 Apache 2.4.16。

问题:当我连接到 Jenkins 中的管理控制台时,收到错误消息“您的反向代理设置似乎已损坏”。以及此詹金斯文档的链接。

点击http://127.0.0.1:8080/manage不会产生错误。

我已将代理设置添加到我的虚拟主机文件中,如下所示:

ProxyRequests     Off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyPassReverse / http://jenkins.exampledomain.com/

RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
Run Code Online (Sandbox Code Playgroud)

当我进行测试卷曲时:

curl -iLk -e https://jenkins.exampledomain.com/manage \
   https://jenkins.exampledomain.com/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

HTTP/1.1 302 Found
Date: Fri, 22 Jan 2016 06:30:57 …
Run Code Online (Sandbox Code Playgroud)

apache reverse-proxy jenkins

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

如何使用rails中间件中的设备对用户进行身份验证?

配置/应用程序.rb

config.middleware.insert_before(Rack::Runtime, Rack::ReverseProxy) do
  reverse_proxy_options preserve_host: false
  reverse_proxy '/external/app', 'https://runalong.com:64167/app'
end
Run Code Online (Sandbox Code Playgroud)

我使用rack-reverse-proxy将请求转发到另一个服务器(不是rails服务器),当请求特定的url时,该服务器在不同的主机上运行。现在我想验证用户是否使用设备登录,然后仅将请求转发到代理服务器,否则将用户发送回登录页面。

rack reverse-proxy ruby-on-rails devise rack-middleware

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

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

我有一个邮件服务器监听端口 8081 和示例路径。我希望能够将整个 URI 查询参数重定向到节点服务。我该怎么办呢。

例如我希望将以下帖子请求网址http://exmaple.com/foo/bar?bla=1传递 http://example.com:8081/foo/bar?bla=1

它看起来非常简单和直接的例子,但就是无法让它工作,有什么想法吗?

location ^~ /foo/bar {

                rewrite_log on;
                rewrite ^/foo/bar(.*) /$1 break;
                proxy_pass http://example.com:8081/foo/bar;                 
        }
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx

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

NGINX:执行反向代理时如何删除端口?

我设置了一个 Nginx 反向代理,用作多个服务器(例如 confluence)的 SSL 卸载。我已经成功地获取了http://confluencehttps://confluence,但是当我尝试重定向http://confluence:8090时,它尝试转到https://confluence:8090并失败。

如何从 URL 中删除端口?

下面的配置有点精简,但也许有帮助?标头中的 $server_port 位是否导致了问题?

server {
    listen      8090;
    server_name confluence;

    return 301 https://confluence$request_uri;
}

server {
    listen      443 ssl http2;
    server_name confluence;
    location / {
        proxy_http_version 1.1;
        proxy_pass http://confbackend:8091
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $server_name:$server_port;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Upgrade $http_upgrade; #WebSocket Support
        proxy_set_header Connection $connection_upgrade; #WebSocket Support
   }
}
Run Code Online (Sandbox Code Playgroud)

似乎这里有很多答案都涉及http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect,但我在这种混乱的混乱中找不到任何安慰。

我还以为你有一个服务器,但我正在尝试https://serverfault.com/questions/815797/nginx-rewrite-to-new-protocol-and-port的建议

我尝试弄乱该port_in_redirect off;选项,但也许我用错了?


编辑1:添加conf文件 …

reverse-proxy nginx nginx-reverse-proxy

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

反向代理和负载均衡器有什么区别?

我试图了解反向代理和负载平衡之间有何不同。何时使用反向代理而不是负载平衡很有用。

reverse-proxy load-balancing system-design

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

如何找到代理后面的应用程序的基本 URL?

我们基于 PHP 的应用程序(定制的,无框架)有时需要使用其基本完整 URL(例如,将 URL 存储在发送给客户端的文件中)。例如,基于这个问题,我们的应用程序猜测这一点(这是基于比较和类似和__FILE__中的各种变量)。$SERVERSCRIPT_NAMESERVER_NAME

现在我们需要在应用程序前面设置一个(nginx)反向代理。假设我们映射https://example.com/some/dir/onproxy/http://backend/another/dir/onbackend/.

https://example.com/some/dir/onproxy/有没有办法从代码中猜测公共 URL( ) backend

AFAIU(根据我的阅读和实验),这是不可能的(HTTP_HOST可能给出example.com,但我没有发现任何表明的内容some/dir/onproxy),但也许我遗漏了一些东西(一些变量或 nginx 配置选项)。

任何想法 ?

如果不可能,唯一的解决方案就是存储https://example.com/some/dir/onproxy/在配置中,对吧?

编辑1

根据@Progman的建议,我尝试了这个问题的解决方案。我已经尝试了接受的答案和第二高得票的答案,但都返回后端(http://backend/another/dir/onbackend/)上的 URL(某些变体)。

编辑2

我忘了提及,我想避免依赖代理中的 URL 重写。

php reverse-proxy nginx-reverse-proxy

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

Flask可以单独在Gunicorn上运行吗?

我目前正在使用Flask和Gunicorn开发HTTP Rest API服务器.由于各种原因,不可能在Gunicorn面前放置反向代理服务器.我没有任何静态媒体,所有网址都由@app.routeFlask Framework中的模式提供.Flask可以单独在Gunicorn上运行吗?

python reverse-proxy flask gunicorn

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