标签: proxy

重新启动 CouchDB 时如何避免重新启动 Apache 代理

我在Mac 上使用CouchDBX运行本地 CouchDB 实例,使用ProxyPass指令代理在 Apache 2 后面:

<VirtualHost *:80>
    ServerName playlick # points to localhost in /etc/hosts
    DocumentRoot "/Users/james/Sites/playlick"
    ProxyPass /data http://localhost:5984
    ProxyPassReverse /data http://localhost:5984
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

如果我尝试在我的 Couch 实例未运行http://playlick/data时点击它,我会收到503 Service Temporously Unavailable错误,正如预期的那样。

然后我启动 Couch 服务器并点击相同的 URL,但在我重新启动 Apache 代理之前我仍然收到错误消息。

另一方面,如果我点击该 URL之前启动 Couch 实例,则一切正常,无需接触 Apache。

因此,似乎 503 错误已被缓存,直到 Apache 进程重新启动。我如何阻止这种情况发生?

或者,如果这不可能,当我在 CouchDBX GUI 应用程序中启动 Couch 实例时,如何强制 Apache 重新启动?

proxy couchdb apache-2.2

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

Linux 上的 PHP:如何让 PHP 使用代理设置连接到互联网?

我的服务器在局域网中,并通过代理服务器连接到互联网。我的 PHP 应用程序 (Drupal) 应该能够通过 PHP 代码检查更新。如何为PHP设置代理设置以使其正常运行?

注意:我知道我可以在 curl 或其他东西中设置代理设置。但情况是代码不是我的,我不想改变它。我只是想让 PHP 始终通过特定的代理设置连接到互联网。

linux php proxy

12
推荐指数
2
解决办法
4万
查看次数

为选定的用户屏蔽 Facebook

我们这里有一些用户在工作时间使用 Facebook,他们的工作效率很高,作为临时措施,我远程编辑了他们的主机文件以指向 facebook.com 及其各种子域指向回送地址,然后手动在午餐时间发表评论,以便他们可以使用它。

每天对许多用户执行此操作显然有点令人厌烦。

我正在寻找可以按计划自动执行此阻塞的方法。

我在想某种代理服务器,我可以通过组策略将其添加到浏览器上的代理设置中。

有谁知道任何免费或廉价的 Windows 软件解决方案可以做到这一点?或者我可以在 PC/VM 上安装独立的东西?

我想我总是可以编写和安排一些批处理文件来切换一个被阻止的主机文件和一个未被阻止的主机文件。

网络是 Windows 2003 SBS 服务器、Windows XP sp3 工作站、服务器 Netgear DG834 路由器上的单一接口,虽然它确实有一些调度,但它不允许设置一个窗口,只有一个块窗口 - 例如 9-5pm,但我想要在中间打开它。

windows-server-2003 proxy blocking

12
推荐指数
3
解决办法
6717
查看次数

Akward 延迟将 Apache 的代理请求连接到 node.js 应用程序

在我的 Ubuntu Server 10.04 中,我正在运行一个示例 node.js 应用程序:

var http = require("http");

function onRequest(request, response) {

        console.log("Request received.");
        response.writeHead(200, {"Content-Type": "text/html"});
        response.write("Hello World");
        response.end();

}

http.createServer(onRequest).listen(3000);
Run Code Online (Sandbox Code Playgroud)

它只是侦听端口 3000 上的请求,登录控制台此请求并向客户端发送 HTTP “Hello World”

目标是使这个应用程序与 Apache2 共存。因此,经过一番研究后,我以这种方式编辑了默认文件(/etc/apache2/sites-available/default):

<VirtualHost *:80>
        ServerAdmin haj@myserver.com
        ServerName dev.myserver.com

        <Location /node>

                ProxyPassReverse http://127.0.0.1:3000/
                ProxyPass http://127.0.0.1:3000/

        </Location>

        <Proxy>
                Allow from all
        </Proxy>

        DocumentRoot /home/haj/www/http_home

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/haj/www/http_home/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /home/haj/www/log/error.log

        # …
Run Code Online (Sandbox Code Playgroud)

proxy node.js apache-2.2

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

如何在 CentOS 上使用基于密码的身份验证通过 ssh 设置 SOCKS 代理?

我知道如何使用 设置一个简单的代理ssh -D,但我想在这种情况下使用基于用户名和密码的身份验证。有什么办法吗?

linux ssh proxy centos socks

12
推荐指数
2
解决办法
2万
查看次数

haproxy:在高负载下保留现有会话,为新来者提供“503”服务

尝试做标题中所说的:在高负载下保留现有会话,并向新到达的访问者提供 503 消息。

问题:它有效,但会话不会持续超过大约 90 秒。

目前的结果让我想知道是否有我缺少的超时设置。

目的

我试图让haproxy:

  • 当前端的会话总数低于某个阈值时,将会话的请求发送到 backend-001。
  • 当前端的会话总数高于该阈值时,向会话提供 503 错误
  • 即使会话数超过阈值,也允许对现有会话的请求

这样,正在填写多步骤表单的访问者不会对 503 错误感到惊讶,并且可以告诉新访问者“请稍后再回来,因为我们现在真的很忙”。

设置

设置如下:

            {visitors}
                ? 
            [haproxy]
                ? 
[rails app on unicorn served by nginx]   (right now just one 
                                            backend: 'backend-001')
Run Code Online (Sandbox Code Playgroud)

目前的方法

为了实现上述目标,我正在使用以下配置。

这个是用于测试的,有一个非常低的限制(前端10个连接(fe_conn gt 10)),使测试更容易。

为了让服务器承受一定的负载,我使用 httperf 如下:

httperf --hog --server staging.machine.tld --uri /do_some_things --wsess=500,10,30 --rate 2

global
    daemon
    maxconn 10000

defaults
    mode        http
    timeout connect 6s
    timeout client  60s
    timeout server  60s
    balance roundrobin
    option http-server-close

frontend http-in …
Run Code Online (Sandbox Code Playgroud)

proxy haproxy

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

Apache httpd 错误“代理:ap_get_scoreboard_lb”与 ProxyPass

我设置了 apache 来代理 tomcat,但是当我定位页面时出现以下错误。我有时会得到一个空白页或 503:

[错误]

[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(2) failed in child 29611 for worker proxy:reverse
[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(1) failed in child 29611 for worker https://localhost:8443/
[Mon Dec 03 04:58:16 2012] [error] proxy: ap_get_scoreboard_lb(0) failed in child 29611 for worker http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

我在 vm 上配置了两个 vhost,如下所示:

[http 主机]

<VirtualHost *:80>
  ServerName www.mysite.net
  ServerAlias mysite.net

  ProxyRequests Off
  ProxyPreserveHost On

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

  ProxyPass / http://localhost:8080/ retry=0
  ProxyPassReverse …
Run Code Online (Sandbox Code Playgroud)

tomcat proxy reverse-proxy mod-proxy apache-2.2

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

nginx:为什么我不能将 proxy_set_header 放在 if 子句中?

使用此配置:

server {
    listen 8080;
    location / {
        if ($http_cookie ~* "mycookie") {
            proxy_set_header X-Request $request;
            proxy_pass http://localhost:8081;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

重新加载 nginx 服务时出现此错误:

Reloading nginx configuration: nginx: [emerg] "proxy_set_header" directive is not allowed here in /etc/nginx/conf.d/check_cookie.conf:5
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

此配置工作正常,但它不符合我的要求:

server {
    listen 8080;
    location / {
        proxy_set_header X-Request $request;
        if ($http_cookie ~* "mycookie") {
            proxy_pass http://localhost:8081;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能将proxy_set_header指令放在 if 子句中?

configuration nginx proxy

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

在 nginx 配置中使用尾部斜杠

    location /product {
        proxy_pass http://10.0.0.25:8080;
    }
Run Code Online (Sandbox Code Playgroud)

如果我对产品文件夹使用我的第一个位置描述,我应该使用http://mysdomain.com/product/并且我不能http://mysdomain.com/product从浏览器使用 。我的意思是我应该使用 url 的斜线结尾。我想用两个状态访问产品文件夹。

这有什么区别吗:

    location /product/ {
        proxy_pass http://10.0.0.25:8080;
    }
Run Code Online (Sandbox Code Playgroud)

nginx proxy

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

如果后端关闭,nginx 使用代理缓存

如果后端服务器关闭,我需要 nginx 代理使用缓存:

这是我的配置。但似乎是 nginx 使用缓存而不检查后端服务器。

http {

  # ...

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m;
  proxy_cache_key "$scheme$request_method$host$request_uri";


  server {
    server_name _;

    location / {
      proxy_connect_timeout 5s;
      proxy_read_timeout 5s;
      proxy_cache tmpzone;
      proxy_cache_valid      200 304 1d;
      proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host 'www.example.com';
      proxy_pass http://www.example.com;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果后端服务器已启动,我如何绕过代理缓存?当后端服务器启动时,我的代理服务器根本不使用缓存。

nginx failover proxy cache

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