Articles of 反向代理

VPS上NGINX反向代理的硬件select和带宽限制?

下午好朋友。 目前,我们正在增加SaaS应用程序的基础架构,并需要2个应用程序专用服务器,每个服务器运行一个nodejs应用程序的多个实例。 我们托pipe服务器的公司确实提供了“现货供应”的IP负载均衡器,但是现在显然无法处理HTTPS,所以我们需要自己构build负载均衡器(反向代理)。 他们build议使用廉价的VPS,并configuration一个带反向代理和SSLterminal的NGINX。 我对这个还是比较陌生的,并且一直在进行大量的阅读,但是仍然有一些问题: VPS处理反向代理会有什么好的“规模”? SSL更多的内存,CPU或I / O任务的解密/encryption任务? 我应该优先考虑哪个? 实际的应用服务器有一个很好的512Mbps带宽和1Gbps突发,但是做所有客户端通信的VPS实际上只有100Mbps。 这是一个问题吗? 也许服务器可以configuration为直接回复客户端,而不是返回到VPS? 这是甚至可能的或可取的? 所以,我的问题实际上是我为了“现成的”解决scheme而跳槽,现在我需要手动configuration一切,我有点担心我需要的实际需求以及如何configuration它们。 任何有关如何处理基本SSL负载平衡的build议,将不胜感激。 如果我采取的方法是完全错误的,我愿意接受所有的build议。 在此先感谢,最好的问候, 拉法·波利特

“双反向代理”从apache 2.4到nginx到最终目的地ssl secure rocket.chat

我有两个Web服务器在一个防火墙后面的服务器。 所以只有一个可以获得80和443的端口。 第二个,没有得到港口natted,我安装了rocket.chat。 目前唯一能通过ssl来确保安全的方法是通过反向代理。 由于我不希望数据在内部networking中不安全地发送,我试图使用两个反向代理。 一个从webserver1到webserver2,另一个从webserver2到rocket.chat本身。 在webserver1上运行apache 2.4,在webserver2上运行nginx 1.6。 redirect似乎两个工作,但我没有得到显示的网页。 如果我直接通过443联系webserver2,则显示网页。 甚至有可能使用两个反向代理? 如果没有,还有没有其他机会来encryption内部stream量呢? 我的apache conf: <VirtualHost *:443> ServerName rocket-chat.blablabla.bla SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off ProxyPass / https://192.168.0.8 ProxyPassReverse / https://192.168.0.8 SSLEngine on SSLCertificateFile /etc/ssl/certs/xyz.crt SSLCertificateKeyFile /etc/ssl/private/xyz.key </VirtualHost> 我的nginx conf: server { listen 443 ssl; server_name 192.168.0.8; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; […]

使用Tornado服务器和Apache2进行SSL反向代理,初始页面加载速度较慢

如果网站正在被新用户(浏览器)访问,我的网站( en-real.com )正在经历长时间的延迟(通常是分钟,但有时候网页从未加载)。 如果新的浏览器刷新页面,内容显示,一切都很好。 有趣的是,当一个新用户造成这种滞后时,它也挂起了旧用户的连接。 如果任何用户点击“刷新”,则所有用户都可以正确加载他们的内容。 我可以在私人模式下在Chrome和Firefox上重新生成此行为。 在私人模式下,如果一个请求超过30分钟,请求就会滞后。 这些内容是由Tornado监听端口8700服务的。我有一个由Apache2运行的反向代理,它被设置为将来自端口443和80的请求转发到端口8700.我有一种感觉,反向代理可能与行为有关,但不知道要testing什么。 或者也许它可能需要处理SSL证书被加载?

使用Nginx作为代理运行Apache的Owncloud

我目前正在运行我们自己的Owncloud(版本9)。 我已经用Apache做过好几次了,但是在使用Nginx作为代理服务器时,却遇到了麻烦。 Nginxconfiguration server { listen 443 ssl http2; server_name example.com; index index.php index.html; ssl_certificate /path/ssl.crt; ssl_certificate_key /path/ssl.key; ssl_dhparam /path/dh.pem; ssl_buffer_size 8k; ssl_session_timeout 1d; ssl_session_cache builtin:1000 shared:SSL:50m; ssl_session_tickets off; ssl_trusted_certificate /path/ssl.crt; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; add_header Strict-Transport-Security "max-age=15768000; includeSubdomains; preload"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; ssl_prefer_server_ciphers on; location […]

Nginx的代理重写与条件为域

我处于一个相当未知的情况,但我相信可以使用nginx代理和URL重写function来完成。 我想要的是: 有一个网站有多个品牌,所以我们说我有3个域名。 因此,如果有人试图访问domain1.com,nginx会将徽标URL重写为logo1.png。同样适用于: Domain2.com> logo2.png Domain2.com> logo3.png 我知道有可能为同一个文件提供3个域名。 这是我所做的: #domain1.com nginx_conf server { listen 80 default_server; root /var/www/vhosts/domain1.com/httpdocs/; index index.php index.html index.htm; server_name domain.com domain1.com; location / { sub_filter '<img src="/images/logo.png' 'img src="/images/logo1.png'; try_files $uri $uri/ /index.php; } 如果我有三个独立的configuration,你认为这会起作用吗? 让我知道。 谢谢。 的Shahriar

反向代理在云端

我有一个angular色站点/ Web应用程序(让我们打电话这个www.mysite.com )作为一个静态网站在亚马逊S3上托pipe。 这个s3桶作为一个云端分布的来源,它完美的工作。 我们有一个额外的要求,部署博客的search引擎优化的目的。 我有我使用DNS映射到blog.mysite.com的 wordpress实例 我怎样才能使这个www.mysite.com/blog 其他要求: 博客上的所有链接都必须redirect到www.mysite.com/blog,而不是blog.mysite.com 地址栏应始终显示为www.mysite.com/blog 我经历的所有指南都要求www.mysite.com通过Nginx或Apache进行托pipe。 这必须在S3 +云端。 先谢谢你。

Shibd没有收到正确的POST请求

我正在尝试使用mod_shib为在tomcat容器中运行的应用程序提供SSO。 在Tomcat容器前有一个Apache服务器,作为反向代理运行。 我在shibboleth2.xml中设置了以下比例的mod_shib: <ApplicationDefaults entityID="myapp-sp" REMOTE_USER="eppn persistent-id targeted-id"> … <SSO entityID="ssg-idp"> SAML2 SAML1 </SSO> … <MetadataProvider type="XML" file="/etc/shibboleth/metadata/SAM-metadata.xml"/> 这是我的这个虚拟主机的apache2 conf: <VirtualHost *:80> ServerName server.com UseCanonicalName on ProxyPreserveHost On ProxyPass /myapp http://localhost:8080/myapp ProxyPassReverse /myapp http://localhost:8080/myapp LogLevel debug ErrorLog ${APACHE_LOG_DIR}/myapp.error.log CustomLog ${APACHE_LOG_DIR}/myapp.access.log combined </VirtualHost> <Location /Shibboleth.sso> SetHandler shib </Location> <Location /myapp> ShibRequestSetting requireSession 1 AuthType shibboleth ShibExportAssertion […]

Apache2:如何使用ProxyPass限制对特定IP的访问?

我的外围networking上configuration了一个Apache2服务器作为反向代理服务器。 有很多使用ProxyPas指令configuration的VirtualHost。 对于特定的一个,我想限制访问特定的IP地址。 这是一个例子: <VirtualHost 192.168.0.1:80> ServerAdmin [email protected] ServerName sub.domain.com ServerAlias sub.domain.com ProxyPass / http://internal.domain.com:80/ ProxyPassReverse / http://internal.domain.com:80/ CustomLog /var/log/apache2/my_log combined HostnameLookups Off ProxyPreserveHost On UseCanonicalName Off ServerSignature On ProxyRequests Off </VirtualHost> 我试图添加这个: <Proxy *> Order deny,allow Deny from all Allow from 192.168.0.100 </Proxy> 但不起作用,因为反向代理不保留远程IP地址。 有一种方法可以使用configuration为反向代理的Apache的IP ACL? 谢谢

configurationnginx反向代理发送TCP保活数据包给服务器

负载平衡器后面的Azure中有IIS服务器。 负载平衡器具有4分钟的不可configuration超时,在此之后,非活动连接被终止。 我们正在尝试将nginx设置为上述IIS群集的反向代理。 一切正常,除了nginx不发送保持活动消息到它打开连接到服务器。 所以,如果服务器花费4分钟以上的时间来回复连接,那么负载均衡器将会终止这个连接。 如果一个客户端(浏览器)直接连接到负载均衡器,它会发送TCP保持活动的消息,并且都是好的。 如果客户端连接到nginx,它发送保持活动到nginx和所有连接到nginx好。 但是在nginx和负载平衡器之间没有保持活着的消息,所以最终连接死亡。 so_keepalive选项似乎与从客户端(浏览器)打开到nginx的连接的TCP保持连接有关。 我们尝试了其他反向代理(IIS ARR代理,haproxy),并且总是遇到同样的问题。 我们不能configuration负载均衡器(在我们的控制之外)。 我们怎么能configurationnginx,nginx或负载均衡器后面的IIS(nginx连接到哪一个)让他们发送保持活动的消息,以保持连接打开?

Nginx:连接()到xxx.xxx.xxx.184:3000失败(22:无效参数),当连接到上游时,

这是我第一次问serverfault问题。 如果我错过了什么,请让我知道! 我一直在试图解决这个问题两天了。 还是找不到解决办法。 这是我的场景: 服务器A 节点应用程序A在端口3000上 Nginx在80端口 当我去/hello ,应用程序B应该从服务器B服务 服务器B 节点应用程序B在端口3000上 当我访问/hello ,我得到502 Bad Gateway 。 在我的错误日志中,我看到这个: connect() to 162.243.104.184:3000 failed (22: Invalid argument) while connecting to upstream, client: 75.72.170.8, server: 107.170.64.149, request: "GET /hello/ HTTP/1.1", upstream: "http://162.243.104.184:3000/hello/", host: "107.170.64.149" 这是我的服务器A的nginx conf: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name 107.170.64.149; location […]