Articles of mod proxy

mod_rewrite用path后面的下划线replace所有的点

我已经在这里和所有标记的问题,但我的问题是不同的,因为要么replace“ . ”与“ _ ”是在一个特定的path后,我正在通过proxypass运行。 我正在尝试改变: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some.machinename.com 至: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some_machinename_com 码: 选项+ FollowSymLinks RewriteEngine On ProxyPreserveHost打开 ProxyPass / grafana http://100.65.7.97:3000 ProxyPassReverse / grafana http://100.65.7.97:3000 我已经尝试了很多东西,几个小时后,浏览serverfault / stackoverflow / webmasters.stackexchange /谷歌等。但我没有尝试成功redirect。 我不知道为什么。 我试过的一些东西(以及它们的变体): RewriteRule ^([^\.]*)\ (.*)$ $1_$2 [E=%E2:yes,N] RewriteCond %{ENV:%E2} yes RewriteRule (.*) http://%{HTTP_HOST}$1 [R=301,L] … RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/]*?.[^/]*)$ $1_$2 [N] RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/.]*)$ $1_$2 [R=301] … RewriteCond %{REQUEST_URI} […]

如何用2个上下文configurationapache代理:“/”和“/ dev”

我有2个AJP服务运行在我的服务器和一个Apache 2.4代理。 我想映射这个: # in-development environment <Location "/dev"> ProxyPass ajp://127.0.0.1:3001/dev/ </Location> # in production environment <Location "/"> ProxyPass ajp://127.0.0.1:3000/ </Location> 但是,当我访问http:// myserver / dev代理到ajp://127.0.0.1:3000/而不是ajp://127.0.0.1:3001/ 。

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工作得很好。 你能帮我解决这个问题吗?

在代理请求中重写用户和密码

我需要在通过Apache 2.4反向代理的请求中重写客户端authenticationscheme。 具体来说,我想忽略提供的用户名和密码,并强制所有请求相同的用户名和密码。 那可行吗?

Apache反向代理https https

我有一个互联网可访问的Apache服务器,启用SSL和工作。 在本地networking上,有另一台服务器通过http提供一个tomcat应用程序。 Apache服务器反向代理tomcat应用程序。 当通过http使用apache服务器时,tomcat应用程序被正确代理,但是当通过https使用它时,tomcat服务器返回404找不到的资源。 那么https请求是否被转换为http? 我宁愿不触摸tomcatconfiguration,因为这不是我的区域。 这是我的configuration: <VirtualHost *:443> ServerName ext-service.example.com SSLEngine on SSLCertificateFile /etc/apache2/ssl.crt/mycert.crt SSLCertificateKeyFile /etc/apache2/ssl.key/mykey.key SSLCertificateChainFile /etc/apache2/ssl.crt/mybundle.crt ProxyRequests Off ProxyPreserveHost Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> DocumentRoot /srv/www/empty/ ProxyPass / http://int-service.example.com/ ProxyPassReverse / http://int-service.example.com/ </VirtualHost>

使端口显示为子域

我有Jira设置为服务于我的服务器myserver:8080 。 有一个DNS指向jira.otherserver到myserver的IP地址的引用。 (其他otherserver将在未来主持Jira设置) 根据这里的其他答案,我尝试启用mod_proxy,并将以下内容添加到myserver httpd.conf中: <VirtualHost *:80> ServerName jira.otherserver/ ProxyPreserveHost On # setup the proxy <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass http://jira.otherserver/ http://localhost:8080/ ProxyPassReverse http://jira.otherserver/ http://localhost:8080/ </VirtualHost> 但是,当我访问http://jira.otherserver它给了我通用的开始页面(phpinfo)。 我仍然可以通过http://myserver:8080访问jira 我究竟做错了什么? 编辑:我也可以在jira.otherserver:8080访问Jira jira.otherserver:8080 ,所以DNS工作正常 编辑2:我按照答案中的build议,并修改了部分 NameVirtualHost *:80 <VirtualHost *:80> ServerName jira.software-task ProxyPreserveHost On # setup the proxy <Proxy *> Order allow,deny Allow […]

proxy_http超时错误

你好可以帮助我解决以下错误 [Tue Dec 13 21:07:12.176702 2016] [proxy_http:error] [pid 9437372:tid 5398] (78)Connection timed out: [client 111.113.130.243:45615] AH01102: error reading status line from remote server 192.168.10.20:80 [Tue Dec 13 21:07:12.176790 2016] [proxy:error] [pid 9437372:tid 5398] [client 111.113.130.243:45615] AH00898: Error reading from remote server returned by /deto/javax.faces.resource/dynamiccontent.properties [Tue Dec 13 21:36:12.261230 2016] [proxy_http:error] [pid 10485878:tid 5655] (78)Connection timed […]

Apache 2.4.7 mod_proxy_wstunnel隧道太多(HTTP以及WS)

我在Ubuntu 14.04 LTS上运行Apache 2.4.7作为反向代理。 这个Apache服务器充当许多不同后端应用程序的入口点,这些应用程序可以通过<Location>块中的不同mod_proxyconfiguration来访问 我需要提供对使用WebSockets的应用程序的反向代理访问。 该应用程序是一个Java Spring应用程序,通过HTTP提供HTML和其他静态文件,然后在加载页面后使用WebSocket作为dynamic数据。 我已经使用以下configuration在Nginx后面运行应用程序: location /newapp/ { proxy_pass http://newapp.example.com:8080/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 不幸的是,由于需要一个在Nginx上不可用的Apacheauthentication模块,我不能在生产中使用它。 我想要做的,在伪Apache的configuration是: <Location /newapp/> if not WebSockets: ProxyPass http://newapp.example.com:8080/ ProxyPassReverse / else ProxyPass ws://newapp.example.com:8080/ ProxyPassReverse / </Location> Apache的mod_proxy_wstunnel模块让我觉得这应该是可能的。 WebSocket可以通过URL /api/socket/… ,所以我尝试使用单独的<Location>块来分隔两种types的ProxyPass : <Location /newapp/> ProxyPass http://newapp.example.com:8080/ disablereuse=on ProxyPassReverse / ProxyPassReverseCookieDomain newapp.example.com apps.example.com […]

只有第一个反向代理虚拟主机工作

我试图redirect在各种端口上的本地主机上运行的服务到单个端口上的子path。 例如http://127.0.0.100:5687/到http://127.0.0.1/app/ 。 我遇到的问题是,只有第一个虚拟主机块的作品。 如果我交换2主机只有最顶层/第一主机工作。 所有其他主机返回未find错误。 这里是有问题的apache指令: <VirtualHost *:80> ServerName app1.example.com #ServerAlias app1 ProxyRequests Off ProxyPass /app1 http://127.0.0.1:6687/ ProxyPassReverse /app1 http://127.0.0.1:6687/ </VirtualHost> <VirtualHost *:80> ServerName app2.example.com #ServerAlias app2 ProxyRequests Off ProxyPass /app2 http://127.0.0.1:7687/ ProxyPassReverse /app2 http://127.0.0.1:7687/ </VirtualHost> 我在这里没有看到什么? 为什么只有第一个虚拟主机工作?

启动httpd时mod_proxy加载错误

我从头开始编译mod_proxy,将其添加到httpd.conf,但是当我启动Apache时,我得到这个: /etc/init.d/httpd restart; su – xamine; /etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: httpd: Syntax error on line 60 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_proxy.so into server: /etc/httpd/modules/mod_proxy.so: undefined symbol: proxy_lb_workers [FAILED] 我们一直在绞尽脑汁,试图找出是什么原因造成的,没有任何运气。 有什么build议?