我试图在一台机器上设置多个具有相同映像的docker容器,并将所有应用程序托pipe在由path分隔的同一个域中。 目的是将每个客户分离到自己的容器中。 即mydomain.com/bbb …等 我正在使用nginx作为反向代理,并在线上跟随各种示例。 我的nginxconfiguration如下所示: server { listen …; … location / { proxy_pass http://127.0.0.1:8080; } location /aaa { proxy_pass http://127.0.0.1:8181; } location /bbb { proxy_pass http://127.0.0.1:8282; } … } 我注意到,应用程序正在期待被托pipe在根目录/目前在404结束了。有没有一种聪明的方法来重写这些到自己的path基于请求的来源而不修改应用程序本身? 我知道,使用子域名可能更容易,但是我想避免在客户来去时添加和删除子域名。
我有一个服务于Web应用程序的Tomcat服务器,我有一个运行在它前面的Nginx服务器作为反向代理。 作为对我之前的问题( Tomcat服务器背后的nginx反向代理 – 如何阻止直接访问服务器? )的答案,我被build议防火墙的Tomcat实例,但根据我从不同论坛的调查结果,限制Tomcat听本地主机似乎是要走的路。 为了防止Tomcat侦听到其他IP,我在连接器configuration中添加了“address = 127.0.0.1”。 整个连接器块是这样的 – <Connector port="8080" address="127.0.0.1" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName=<FQDN> proxyPort="80"/> 在Nginx服务器中,我有这些线路用于服务器configuration。 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name <FQDN>; location / { proxy_pass <FQDN>; 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; } } 现在,如果我尝试使用FQDN访问Web应用程序,Chrome会报告ERR_CONNECTION_REFUSED。 […]
在某些情况下,Web应用程序将通过反向代理(例如Apache with mod_proxy)与客户端进行通信,其中反向代理正在侦听端口80,并且Web应用程序正在侦听大于1023的端口(因为root拥有低于1024的端口)。 正如在这个问题的一些答案中所提到的,如果没有其他进程已经开始监听,任何进程都可以开始监听高端口。 如果Web应用程序尚未开始侦听端口,则可能会出现问题,而其他进程则会首先在事件或恶意中开始侦听。 有没有办法让用户或组拥有一个端口,以便只有Web应用程序的所有者才能启动一个在该端口上侦听的进程?
前两个虚拟主机按预期工作。 第二个代理Odoo服务器。 我想从我的辅助域到我的Odoo服务器的另一个代理。 但是,Odoo必须接收与数据库匹配的子域名,否则将不会提供该域名。 这是我现在的代码: # static homepage <VirtualHost *:80> ServerName mydomain.fr ServerAlias www.mydomain.fr DocumentRoot /var/www/odoo </VirtualHost> # wildcard proxy for odoo: # one subdomain -> one database <VirtualHost *:80> ServerName mydomain.fr ServerAlias *.mydomain.fr ErrorLog /var/log/odoo/odoo-error.log CustomLog /var/log/odoo/odoo-access.log combined LogLevel warn <Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests Off ProxyPass / http://mydomain.fr:8089/ ProxyPassReverse […]
我的目标是重写http://localhost:8000下的所有内容到http://localhost/foo 我遵循这个链接中提到的每一个步骤,但仍然无法得到它的工作。 这是我的设置: urls.py(Django) urlpatterns = [ url(r'^$', 'home.view'), url(r'^foo$', 'foo.view'), ] uwsgi.ini(uWSGI) [uwsgi] chdir = /home/user/folder/project wsgi-file = /home/user/folder/project/iTrends/wsgi.py home = /home/user/.pyenv/versions/project master = true processes = 10 threads = 5 socket = /tmp/project.sock chmod-socket = 666 vacuum = true logto = /tmp/project_uwsgi.log http-websocket = true buffer-size = 65535 nginx80.conf(带端口80的nginx) server { listen 80; […]
寻找扩展Eclipse Che (云IDE),我正在实施一个Che Farm 。 总之,一组反向代理背后的Eclipse Che实例。 好的,我正在使用Nginx在使用Amazon Linux AMI的EC2实例上实现反向代理,但是我发现这个问题:Eclipse Che需要为客户端打开端口8080,其工作空间的范围是32768-65535(更多信息,请点击这里 ) 。 所以,我修改了nginx.conf文件,如下所示: server { listen 32768; listen 32769; listen 32770; listen 32771; […] listen 65534; listen 65535; server_name http://eclipse.company.cxx; location / { proxy_pass http://eclipse.company.local:$server_port; } } 重新启动nginx之后,我收到了这个消息: $ sudo service nginx restart nginx: [emerg] socket() 0.0.0.0:33786 failed (24: Too many open files) nginx: […]
我打算在Web服务器之前放置一个反向代理,主要用于高可用性,负载平衡和SSL隧道。 可能是nginx或HAProxy 。 我知道代理成为了体系结构的SPOF,所以我正在寻找硬件解决scheme,使其尽可能地安全和稳定。 硬件方面的最佳做法是什么?在磁盘空间,内存和CPU方面,所需的规格是相当小的? 对于整个反向代理正在进行的事情的任何其他build议将不胜感激。
我有一个“单页”的Web应用程序,需要客户端和服务器之间的双向通信。 该应用程序最初devise为依赖于WebSocket,但已被修改为使用SockJS,禁用WebSocket支持。 使用SockJS库的客户倾向于使用“XHRstream”作为双向通信的手段。 服务器是一个Java Web应用程序,使用Spring托pipe在Tomcat中的SockJS服务器(来自Spring的WebSocket模块)实现。 NGINX被用作Tomcat的反向代理。 NGINX的默认configuration是启用proxy_buffering 。 NGINX的文档没有充分解释缓冲区的行为:如果数据正在被stream式传输(来自Tomcat)长期存在,在什么情况下缓冲区将被刷新(即当数据实际上被推送到客户端时)是不明显的HTTP连接。 我的观察是,从服务器推送的数据(对客户请求的响应)可能位于NGINX的缓冲区中,直到为该客户端发生下一个服务器生成的SockJS心跳。 这样做的效果是延迟25秒将响应传输到客户端! 我可以通过实验非常可靠地重现此问题 – 行为是确定性的,但是我无法解释configuration的缓冲区大小,正在传输的数据大小和NGINX行为之间的关系。 我的服务器的责任是生成响应客户端的命令调用; 每个响应的大小会有所不同(从几个字节到几十千字节),但是是独立的。 主要目标是减less对客户端命令的响应延迟。 NGINX只看到一个长期的HTTPstream; 将stream的内容划分为单独的命令响应(用于立即发送)将要求NGINX理解SockJS的专有协议,但是它不能。 因此,我认为NGINX的缓冲政策与我的使用情况根本是不相容的,并计划closuresproxy_buffering ; 这是明智的吗? NGINX的文档build议,如果proxy_buffering被禁用,上游服务器(Tomcat)将被迫保持HTTP响应打开,直到客户端收到所有的数据(这似乎是一个合理的缓冲定义!)。 因此,NGINX的文档build议禁用proxy_buffering ,因为它可能会浪费上游服务器资源。 但是,因为我的客户端使用XHRstream,我的服务器已经有义务为每个活动客户端持有HTTP连接(对吗?)。 因此,禁用proxy_buffering不应对我的Tomcat服务器产生负面影响; 它是否正确?
我有这个configuration的Apache httpd 2.4testing实例: <VirtualHost *:9979> ServerName 192.168.0.162 # Encoded slashes need to be allowed AllowEncodedSlashes On # Container uses a unique non-signed certificate SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of LibreOffice Online […]
我在服务器configuration领域是一个新手。 在工作中,我们要用Apache Archiva设置一个Maven仓库,基本上我们需要一个地方来存储我们创build的Maven项目。 我能够在本地主机上运行Archiva并通过http访问它。 为了能够通过SSL访问版本库,我们希望将Apacheconfiguration为SSL代理,我遵循许多指南(例如https://stackoverflow.com/questions/30871001/how-to-setup-apache-archiva -to-use-https-instead-of-http )如何做到这一点,但我试图通过https连接时得到的答案是 在连接server_ip时发生错误:8080。 SSL收到的logging超出了允许的最大长度。 错误代码:SSL_ERROR_RX_RECORD_TOO_LONG 我的虚拟主机configuration如下所示: Listen 8081 <VirtualHost *:8081> ServerName server_ip ProxyRequests Off <Proxy http://localhost:8080> Order allow,deny Allow from all </Proxy> ProxyPreserveHost On SSLEngine On SSLProxyEngine On SSLCertificateFile /path_to_cert SSLCertificateKeyFile /path_to_key ProxyPass /http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost> 我该如何解决这个问题?