有关如何向请求者显示反向代理的问题: 如果我有一个安全的Web应用程序运行在一个端口可以说9443和一个客户由于企业IT限制不能访问它,我使用反向代理作为DMZ和转发443stream量到9443。访问networking应用程序。 请假设在端口9443上更改应用程序不是一个选项。
我build立了一个Nginx反向代理服务器,服务于另一台服务器上托pipe的mp4文件。 现在一切正常,除了caching。 虽然我有proxy_cache_valid设置为1天( proxy_cache_valid any 1d ),caching将始终自动删除一段时间后(5-10分钟,我认为)。 我的文件大小范围从200 – 1500MB(平均700MB)。 我无法弄清楚configuration有什么问题。 任何事情都可能有帮助 这里是configuration: worker_processes auto; worker_rlimit_nofile 100000; events { worker_connections 5000; multi_accept on; use epoll; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 10; keepalive_requests 1024; client_body_timeout 12; client_header_timeout 12; send_timeout 10; proxy_cache_path /tmp/mycache keys_zone=mycache:10m use_temp_path=off; limit_conn_zone $binary_remote_addr zone=addr:10m; […]
我们在nginx反向代理服务器后面有一堆服务 foo.com/service1/index.html被redirect到service1/index.html好。 但是当service1/index.html具有像/js/bar.js这样的脚本src时,浏览器会调用foo.com/js/bar.js 。 我希望它所有的电话foo.com/service1/js/* 。 这怎么能实现? 这里是一个nginx conf的片段 location /service1 { proxy_pass http://service1 } location /js/(.*)$ { proxy_pass http://service1/js } 当service2/js有一些资源时,它将redirect到foo.com/js并中断。 这怎么解决?
这是我在NginX / sites-enabled目录中的文件: upstream tomcat_server { server 192.168.1.100:8080 fail_timeout=0; } server { listen 80 default_server; listen [::]:80 default_server; server_name _____.com www._____.com; location / { 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_pass http://tomcat_server; } } 现在,stream程如下所示: 我访问我的域名_____.com,请求被映射到我的路由器在端口39080的IP。 在我的路由器中,端口80将端口39080的请求端口转发到192.168.1.136(我的nginx服务器正在运行,单独的机器)。 Nginx正在监听端口80并提取请求。 我想要做的是将请求redirect到运行在单独机器上的Tomcat服务器,所以我把proxy_pass放到了Tomcat服务器上。 实际发生的事情是请求挂起,屏幕上出现一个空白页面。 Tomcat日志显示对请求的200 OK响应,但是它应该加载其余的内容,包括页面,图像和脚本以及其他内容。 “GET / app-portal / HTTP / 1.0”200 // 而已 [ […]
我有一个大致看起来像这样的设置(我试图尽可能简化这个): 端口443 – nginx监听并转发到端口80,configuration看起来像这样 server { listen 443 ssl; location / { proxy_pass http://127.0.0.1:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; proxy_set_header Host $host; } 端口80 – 清漆(反向代理),将stream量转发到端口8080,除非有caching命中。 端口8080 nginx设置为PHP与fastcgi。 我有一些共同的configuration: location ~ \.php$ { … include fastcgi_params; } 和看起来像这样的fastcgi_params文件 … fastcgi_param HTTPS $https if_not_empty; 我一直在试图做的是创build一个安装程序,其中nginx在侦听端口8080时能够检测是否向http或https提供内容。 它需要告诉这个PHP,所以它可以创build正确的scheme的URL。 我在想,在某个地方,我应该听X-Forwarded-Proto ,然后告诉nginx https是打开的。 […]
我有一个CMS(grav)在Docker容器内部运行,它受到nginx服务的影响,作为反向代理将web地址redirect到一个端口(例如mydomain.de:80 -> 127.0.0.1:8001 )。 以下是我所观察到的:服务一般运行正常,但某些操作(例如尝试login)失败,并在Web界面显示错误消息:“无效的安全令牌”。 当然,这是太模糊的信息,甚至猜测什么组件configuration不当。 但是对于我来说,看起来nginx是否代理端口并不重要。 如果我只是离开nginx的一切工作正常,不pipe我在Docker中使用哪个端口或它映射到哪个端口。 例如没有 nginx的configuration工作正常: EXPORT 80 , docker run -p 80:80 .. ,浏览mydomain.de:80 EXPORT 8001 , docker run -p 80:8001 .. ,浏览mydomain.de:80 EXPORT 80 , docker run -p 8001:80 .. ,浏览mydomain.de:8001 EXPORT 8001 , docker run -p 8001:8001 .. ,浏览mydomain.de:8001 只要我启动nginx作为代理服务器,我得到了描述的错误。 所以目前我猜Docker和Grav工作得很好,只是nginx没有正确的反向代理。 这是我的nginx服务器configuration: map $http_upgrade $connection_upgrade { default upgrade; […]
Nginx被用作Node服务器前面的反向代理。 节点服务器有一个使用WebSocket的path( /ws ),这个path需要特殊的设置。 /ws不是一个目录,因此对它的请求不能有一个结尾的斜杠。 什么是正确的方式来configuration这个? 以下configuration不起作用,但显示了意图。 location /service/ { proxy_read_timeout 30s; proxy_pass http://service:8080/; # not working, requests are sent to http://service:8080/service/ws # instead http://service:8080/ws location /service/ws { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 36000s; } }
我想知道使用Apache的HTTP服务器作为IIS7反向代理(在3.5 .NET Framework下提供ASP.NET内容)的选项。 对于JBoss / Tomcat或任何其他Java应用程序服务器,我将使用MOD_JK ,但是我想知道您对IIS7有什么经验。 有什么连接器可用(如果有的话),每个连接器的优缺点是什么。 非常感谢。 伟大的网站!
如果您通过反向代理访问文件,并且找不到文件(返回404),apache2 / mod_proxy是否可以通过另一个反向代理自动检查另一台服务器上的文件? 工作stream程如下:1.请求服务器上的文件做反向代理2.服务器在服务器A上查找文件3.在服务器A上找不到文件,所以它检查服务器B 4.在服务器B上find文件,所以它被返回。 我已经知道其他产品可以做到这一点,但我很好奇,如果mod_proxy可以做到这一点?
我需要一个具有Web界面进行configuration的Web代理服务器。 我希望能够通过它的Web界面来控制代理服务器的configuration。