Articles of 反向代理

将Apache Proxypass转换为Nginx

我很难理解如何为Nginx重写这些Apache ProxyPass指令: ProxyPass /api/socket ws://localhost:8082/api/socket ProxyPassReverse /api/socket ws://localhost:8082/api/socket ProxyPass / http://localhost:8082/ ProxyPassReverse / http://localhost:8082/ 所以,如果我已经尝试过: proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect http://mydomain:8082/ https://mydomain/alias/; proxy_redirect ws://mydomain:8082/api/socket ws://mydomain/alias/api/socket; proxy_pass http://localhost:8082/; 但没有成功。

为什么逆向代理不能指向自己呢?

当我设置我的反向代理从它自己的端口80转发到它自己的端口8080时,我这样做,我得到以下警告 2016/03/28 22:05:59 [alert] 4193#0: 512 worker_connections are not enough 这可能是无限循环的结果。 在Nginx的configuration:前端反向代理到另一个端口的接受的答案,用户写道:“我假设nginx不是服务器端口5010以及80听,正确吗? 那是因为反向代理人不能转发给自己吗? 还是有另一个原因,为什么这个无限循环正在发生,这个评论只是一个红色的鲱鱼? 以下是我的nginx.conf。 当我转到router.example.com时,会收到警告。 当我删除#### BEGIN BAD LINES #### ,效果很好。 user root; worker_processes 1; worker_cpu_affinity 0101; master_process off; worker_priority 10; error_log /tmp/var/log/nginx/error.log; pid /tmp/var/run/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 512; } http { log_format main '$remote_addr – $remote_user [$time_local] $status ' '"$request" $body_bytes_sent […]

Tomcat服务器背后的nginx反向代理 – 如何阻止直接访问服务器?

这可能是一个noob问题,但我仍然在学习Web服务器和反向代理设置。 我有两台服务器在同一个networking上运行 – 一个Tomcat和另一个Nginx,我打算为类似的Tomcat服务器使用反向代理服务器。 我了解到可以用来隐藏真实Web服务器的身份,并且可以利用其他优点,例如更好的性能和负载平衡,我提出了引入反向代理服务器的想法。 我面临的问题是,tomcat服务器可以通过两个IP地址访问 – 如果我使用Nginx IP,它将redirect到Tomcat FQDN(预期),但是如果使用FQDN tomcat.domain.com进行ping,则会显示真实Tomcat服务器的IP,而不是Nginx服务器的IP。 实际上,我的Nginx服务器没有任何用途。 我在这里错过了什么?

对自定义Web服务的Apache身份validation

我想有一个Apache转发到一个内部服务(Django的应用程序)的调用返回True / False(和一些参数可能),如果用户是有效的。 在将请求转发给应该处理它的服务之前。 这可能吗? 我检查了MODS和类似于我想要做的MOD 分贝的国防部 和Djangoauthentication的实现 事实是,两者都使用标准的方式来做到这一点,比如在表上查询或用用户名和密码做的Django授权。 在我的情况下,我必须满足更广泛的情况下,如可能的login与ID /密钥或Oauth或其他事情。 例如,我也可以添加用户到一个caching,所以在第二次login,我可以从那里得到的价值。 我的想法是,Apache转发一个内部系统https://localhost/validate ,返回一个validation值。 这可能吗? (这是可能的与其他networking服务器/反向代理?)

为什么nginx需要一个auth_http条目的smtp反向代理?

我通常是一个Apache用户,但我需要开始使用nginx作为smtp(后缀)的反向代理。 我在网上看过几十个例子。 像这样和这个 。 他们都有一个auth_http条目,我完全不明白。 这不是我第一次使用代理,而且我目前使用haproxy已经有几个月了。 那么,为什么我必须提供一个PHP身份validation页面? 为什么我不能像使用haproxy一样简单地使用nginx,只要告诉它:在这里设置一个前端,用这个密钥解密ssl,并把它带到后端/端口? 有人可以解释auth_http条目是多么必要吗? nginx手册似乎不太多。 感谢您的努力。

Nginx,proxy_cache和糟糕的行为应用程序(wordpress)

我一直在努力configurationNginx作为反向代理。 我大部分的机制工作,但我一直在为最后3天的战斗来控制caching标题和新手到Nginx这是让我疯狂… 它看起来像我没有得到如何位置块链起来。 我真的很感激一点帮助 我想要的是简单的 所有内容types的text/html有头Cache-Control: max-age=60, public, must-revalidate 所有的CSS / JS /图像等…有头Cache-Control: max-age=315360000, public 404和所有的错误没有caching控制 感谢有关如何完成这一任务的任何build议。 在这里我有代理设置(似乎按预期工作) proxy_cache_path /tmp/example levels=1:2 keys_zone=example:100m max_size=4g inactive=60m; proxy_temp_path /tmp/example/tmp; server { listen 80; server_name example.com; # is this realy needed? # Perhaps it should point to an empty folder root /var/www/vhosts/example.com/www; location ~ /\. { deny all; } […]

ProxyPass – 无效的url

我在CentOS 6上创build了Apache 2.2的简单代理传递,但是这不起作用,并且抛出错误。 如果有人可以请求帮助,我会很感激: SSLProxyEngine On ProxyPass / https://ecuo-test.fin.us2.oraclecloud.com/ ProxyPassReverse / https://ecuo-test.fin.us2.oraclecloud.com/ 现在,当我把它叫做http:// MyHostName / finApInvQuickInvoicesModel / InvoiceInterfaceService?wsdl时,它会抛出以下错误: Invalid URL The requested URL "http://%5bNo%20Host%5d/finApInvQuickInvoicesModel/InvoiceInterfaceService?", is invalid. Reference #9.76fd241.1465372087.68aff0d 而https://ecuo-test.fin.us2.oraclecloud.com/finApInvQuickInvoicesModel/InvoiceInterfaceService?wsdl工作得很好。 你能帮我解决这个问题吗?

负载平衡和高可用性networking限制

我正在使用HAProxy Reverse Proxy&Keepalive提供高可用性的Apache / MySql虚拟服务器组。 我知道我将使用一个浮动公共IP,然后configurationHAProxy将stream量中继到configuration文件中的服务器。 据我所知,所有服务器实例需要在同一个networking上,这是一个问题,就好像数据中心停机一样,服务器组失败。 如何创build一个高度可用的安装程序,并不要求所有的虚拟服务器都在一个单一的networking下。 我认为这个问题将依赖于浮动IP和HAProxy。 例如: aws上的Linode 2服务器上的Digital Ocean 2服务器上的2台服务器 Digital Ocean在此页面上指定“两台服务器必须位于同一数据中心内,并且应启用专用networking。” 他们正在使用Keepalive。

与域的apache2反向代理

我不知道是否有可能做什么,但我有多个服务器上的几个应用程序。 我有一个服务器gitlab,一个jenkins和一个sonarqube。 我希望能够通过使用我的域导航到他们,如下所示: gitlab > https:// git.mydomain.com jenkins > https:// jenkins.mydomain.com sonarqube > http:// sonar.mydomain.com 我想要做的是在与应用程序独立运行的第四台服务器上设置一个带有apache2的反向代理。 这是我试图做的: <VirtualHost *:80> ServerName http:// mydomain.com ProxyPass http:// sonar.mydomain.com/ http:// sonar.mydomain.com:9000/ ProxyPassReverse http:// sonar.mydomain.com http:// sonar.mydomain.com:9000/ ProxyPass http:// jenkins.mydomain.com/ https:// jenkins.mydomain.com:8081/ ProxyPassReverse http:// jenkins.mydomain.com/ https:// jenkins.mydomain.com:8081/ </VirtualHost> 当我这样做,它将无法正常工作,只会去Apache的默认页面。 我所做的尝试是用/来做,而且我注意到无论用什么方法设置它,它都不能和https://扩展一起工作。 有没有办法让这个工作? 而且有可能以我想要的方式设置代理?

NGINX反向代理,configurationvideo(MJPG)stream以使用单一连接到后端服务器

我有一个问题天气可以configuration一个NGINX反向代理,以便它不会将videostream的每个请求都代理到后端服务器,而是打开单个连接来获取videostream并将其分发给客户端。 现在我使用下面的configuration。 server { listen 9000 ssl; server_name some.domain www.some.domain; error_log /var/log/nginx/error.cam.log; access_log /var/log/nginx/access.cam.log; ssl on; ssl_certificate /etc/letsencrypt/live/some.domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/some.domain/privkey.pem; location / { auth_basic "Login"; auth_basic_user_file /etc/nginx/auth/Somefile; proxy_pass http://XXX.XXX.XXX.XXX:9000/; proxy_http_version 1.1; proxy_buffering off; } } 每当客户端请求从NGINX服务器请求该站点时,导致新的后端到NGINX连接具有完全相同的videostream。 上图显示了传出networkingstream量:绿色= Nginx服务器,蓝色=后端服务器。 每个峰值意味着一个新的客户端访问videoMJPGstream。 所以问题是我有一个从后端到NGINX代理严格有限的性能,因为后端是一个树莓派,不能提供更多的30Mbit稳定的stream。 我已经尝试过缓冲等,但没有成功。 是否有任何方法使用单个连接到后端? 来自德国,弗洛的感谢和问候