标签: reverse-proxy

如何更新正在运行的Node.js服务器?

据我所知,Node.js服务器基本上是一个JavaScript文件,由node可执行文件运行.是否可以在不停止请求处理的情况下更新此文件?

我想必须为此停止节点可执行文件,所以我想我应该使用反向代理.例如:

  1. 原始服务器版本侦听localhost:50001
  2. 代理服务器侦听webinterface上的请求:80并将它们转发到localhost:50001
  3. 应在localhost:50002上启动新的服务器版本
  4. 代理服务器转发目标应更改为localhost:50002
  5. 应停止原始服务器版本

这是一种有效的方法吗?如何在多台服务器计算机上自动完成此类版本更新(可从同一LAN访问)?

versioning reverse-proxy node.js

5
推荐指数
2
解决办法
2943
查看次数

清漆:性能影响大禁令清单

我们想知道是否有人在Varnish有大量禁令的经验.我们考虑一种禁令策略,每晚可能导致几百次(智能)禁令(在X百万个缓存对象上).

虽然我知道这很大程度上依赖于环境变量,但我们想知道这是否会对性能产生重大影响.

reverse-proxy varnish

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

限制直接访问端口,但允许在Nginx中进行端口转发

我试图限制端口9200上对elasticsearch的直接访问,但允许Nginx代理传递给它.

这是我目前的配置:

server {
        listen 80;
        return 301;
}

server {

        listen *:5001;

        location / {
                auth_basic "Restricted";
                auth_basic_user_file /var/data/nginx-elastic/.htpasswd;

                proxy_pass http://127.0.0.1:9200;
                proxy_read_timeout 90;
        }
}
Run Code Online (Sandbox Code Playgroud)

这几乎与我想要的一样.我可以在端口5001上访问我的服务器以访问elasticsearch,并且必须按预期输入凭据.

但是,我仍然可以点击:9200并避免HTTP身份验证,这会失败.如何在不限制nginx的情况下阻止访问此端口?我试过这个:

server {
        listen *:9200;
        return 404;
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

nginx: [emerg] bind() to 0.0.0.0:9200 failed (98: Address already in use)
Run Code Online (Sandbox Code Playgroud)

因为它与elasticsearch冲突.

必须有办法做到这一点!但我想不出来.

编辑:

我根据评论编辑并总结了问题:

我想锁定<serverip>:9200,基本上只允许通过端口5001(在HTTP Auth后面)进行访问.5001应代理到127.0.0.1:9200,以便只能通过5001访问elasticsearch.所有其他访问应该是404(或301等).

reverse-proxy nginx http-authentication elasticsearch

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

我可以使用fiddler模​​拟掉线连接吗?

我试图使用fiddler来模拟连接丢弃,除了增加延迟以减慢请求很长一段时间.

谢谢,

希德

proxy reverse-proxy fiddler

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

Docker容器中Apache反向代理的最小配置

我正在尝试设置一个Ubuntu Docker容器,它在端口9000上运行Node.js HTTP应用程序.为了模仿生产环境的设置,我还希望将Apache作为一个简单的反向代理服务器运行在容器中,转发给它来自端口80的应用程序(我向大坏世界揭露).

我已经能够很好地设置Node.js应用程序容器了,我可以在我的内部安装和设置Apache Dockerfile; 但我对设置反向代理完全不熟悉,所以当Apache确实启动时,它不会代理.

Dockerfile看起来像:

# DOCKER-VERSION 1.3.0
FROM    ubuntu:12.04

# Install and set up Apache as a reverse proxy
RUN     apt-get -y install apache2 libapache2-mod-proxy-html
COPY    apache2.conf /etc/apache2/app.conf
RUN     cat /etc/apache2/app.conf >> /etc/apache2/apache2.conf
RUN     service apache2 start

# Install and set up Node.js and bundle app
# ...This works...

EXPOSE  80
CMD     ["./start-app.sh"]
Run Code Online (Sandbox Code Playgroud)

...... apache2.conf我追加的/etc/apache2/apache2.conf是:

ServerName localhost

LoadModule proxy_module      /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module    /usr/lib/apache2/modules/mod_headers.so
LoadModule deflate_module    /usr/lib/apache2/modules/mod_deflate.so

<Proxy *> …
Run Code Online (Sandbox Code Playgroud)

apache reverse-proxy mod-proxy node.js docker

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

Symfony2:getScheme不返回'https'

在控制器中,我一直在使用方法getSchemeAndHttpHost来构建另一个控制器的url.

一切都运行顺利,直到我需要通过https.我使用getSchemeAndHttpHost函数获得的所有URL仍然是http.做了一些故障排除,结果是当我用https和http请求页面时,getScheme函数总是返回http.

我错过了什么 ?

我怎么知道我的控制器是通过http还是https?

编辑 - 更多信息

  1. 我确保使用有效的证书运行测试.
  2. 如果我在Request对象中运行isSecure方法,我总是得到假.

https reverse-proxy symfony

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

无法在nodejs和nginx中提供静态文件

我有一个nodejs博客应用程序.我也使用nginx反向代理服务它.问题是我无法使用该应用程序加载静态文件.我在以下文件中看到了我配置的ngix.但由于某种原因,当我重定向到mysite.com/blog我无法加载静态文件,但在mysite:port/blog我可以.

这是nginx.config文件:

server {
    listen       *:80;

    server_name  www.georgegkas.discrete.gr georgegkas.discrete.gr;

    root   /var/www/georgegkas.discrete.gr/html;
    index  index.php index.html index.htm;


    location / {
        try_files $uri $uri/ =404;
    }

    location ^~ /web-class.gr/ {
        try_files $uri $uri/ =404;
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.html break;
        }
    }

    location /blog {
        root /var/www/georgegkas.discrete.gr/html/GeorgeGks-Blog/app/public;
        try_files $uri $uri/ @nodejs_blog;
        expires max;
        access_log off;
    }

    location @nodejs_blog {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8081;


    }
}
Run Code Online (Sandbox Code Playgroud)

我的app.js文件:

/********************** APP DEPENDENCES AND CONFIGURES ************************/
// Include required …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy nginx node.js

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

NGINX-使用NGINX作为API网关的会话管理

I am new to NGINX and need some clarification. I am deploying NGINX as reverse proxy for my web application which will also work as an API gateway. This API gateway will first send all the HTTP requests to an authentication service (radius based authentication) and then will forward the authenticated requests to the upstream server. Following are my questions for such a scenario.

  1. How does the upstream server knows that the request it received is an authenticated request ? …

reverse-proxy nginx session-state

5
推荐指数
0
解决办法
2314
查看次数

Tinyproxy反向代理“访问被拒绝”

我正在使用tinyproxy来反向代理。我有三个指向同一服务器的子域,我们需要它们在内部指向特定的端口。即,来自任何特定子域的端口80映射到特定端口。请参阅下面的配置示例。

配置看起来像这样:

Port 80
#Allow 127.0.0.1
#ReverseOnly yes
upstream 127.0.0.1:8115 "website.example.com"
upstream 127.0.0.1:3000 "api.example.com"
upstream 127.0.0.1:9000 "socket.example.com"
Run Code Online (Sandbox Code Playgroud)

当我拉起任何子域时,我得到的是:

拒绝访问
此代理的管理员尚未将其配置为服务来自主机的请求。
由tinyproxy版本1.8.3生成。


我在任何地方都找不到足够的文档。我正在考虑与维护者联系。请帮忙。

proxy reverse-proxy tinyproxy

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

ProxyPass将304状态修改为200并添加内容类型

问题

我正在通过Apache2反向代理运行节点服务器(sqlpad).

在某些请求中,节点服务器返回304状态代码,Content-Type直接访问时为no .但是,当通过反向代理访问时,状态代码将更改为200,并Content-Type添加值为text/html.添加它Content-Type会导致应用程序无法加载JS和CSS,因为X-Content-Type-Options: nosniff它位于标题中.

我真的不想对节点服务器进行更改,因为它不是我的项目.我想用反向代理配置解决这个问题.

如何配置Apache2 ProxyPass以转发原始304响应,或者至少,不用Content-Type缺省填写缺失?

以下是我的具体内容:

组态

# /etc/apache2/sites-enabled/xxxx.conf
...
<Location "/sqlpad">
  ProxyPass http://x.x.x.x:xxxx # IP address of Node server
  ProxyPassReverse http://x.x.x.x:xxxx # IP address of Node server
</Location>


# /etc/apache2/apache2.conf (comments removed)

ServerName xxxxx.com
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 600
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include …
Run Code Online (Sandbox Code Playgroud)

reverse-proxy apache2 mod-proxy proxypass

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