我想实现一个简单的事情 – 代理mydomain.com/plex/*到localhost:32400/* 。 我已经有一个不同的代理规则,可以正常工作,但是我无法工作。 我的sites-enabledconfiguration: <VirtualHost *:80> ServerName example.com ServerAlias *.example.com ProxyRequests Off ProxyPreserveHost On <Location "/myapp"> ### This works fine, reverse-proxies to a Tomcat server ProxyPass http://localhost:8080/myapp ProxyPassReverse http://example.com/myapp </Location> <Location "/plex"> ### This does not work ProxyPass http://localhost:32400 ProxyPassReverse http://example.com/plex </Location> <Proxy *> Order deny,allow Allow from all </Proxy> </VirtualHost> 预期:如果我打开URL http://example.com/plex/web/index.html […]
我们运行一项服务,让我们的客户运行他们自己的CMS。 我们的客户希望使用自己的SSL证书,是自签名的,还是由其他公司签署的。 我们的应用程序运行PHP 我正在考虑一个反向代理技术,但是我们有太多的手动重新加载nginx 。 我们在gcloud运行,所以我们有能力拥有一桶SSL证书。 我们准备使用SNI ,从而放弃对WinXP支持。 我们需要接受SSL证书,并以非常less的基础设施交互(重新加载守护进程等)来实现它们。 我们愿意使用您推荐的任何networking服务器或反向代理技术。 我们不想使用UCC ,因为我们想让客户自带SSL。 IPv4很稀缺,因此我们想要限制我们select的IP地址。 我怎么会继续这样做呢? 编辑:我尝试OpenResty与他们的SSL插件,虽然性能不足。 如果有人有更好的主意,分享!
现在的情况: 我有一个Triple-O OpenStack安装(Liberty),甚至连“公共”networking都在私有环境(10.24.7.0/24networking)中。 访问该networking的唯一方法是通过网关主机。 我希望使用反向代理从互联网访问Horizon。 由于安全问题,所有外部通信应通过HTTPS进行encryption。 反向代理应该用作SSL终止主机,并且所有内部通信应该是未encryption的。 OpenStack部署未configuration为使用SSL / TLS,并不知道“公共”networking并非真正公开。 我目前正在尝试使用Nginx作为反向代理,但如果他们提供了解决我的问题的方法,也可以使用其他反向代理软件。 网关主机正在运行RHEL 7.2,Nginx从官方的Nginx仓库安装在版本1.11.1(主线)上。 gateway.example.com是示例中使用的FQDN, 1.2.3.4是示例中使用的网关主机的外部IP地址 10.24.7.9是Triple-O安装的“公共”端点 到目前为止工作: http://gateway.example.com加载index.html,其中可以下载用于签署服务器证书的CA的证书。 由于OpenStack安装不知道它是在SSL端点后面,所以我必须重写内容中的链接。 这是通过两个sub_filter指令完成的,一个是通用的( sub_filter 'http://$host' 'https://$host'; ),另一个replaceOpenStack端点IP( sub_filter 'http://10.24.7.9' 'https://$host'; ) Horizon的consolefunction允许用户通过embedded在Horizon中的NoVNC连接到实例的串行控制台。 NoVNC使用websocket在浏览器和运行实例的物理主机之间build立一个双向的TCP连接。 为了支持这一点,我不得不configurationNginx来允许HTTP连接升级,并听取端口6080。 iptables允许端口80,443和6080的stream量。 问题: 在Horizon页面上显示实例的详细信息,而不是显示选项卡的主体(概述,日志,控制台,操作日志),选项卡行将重复,只显示概览选项卡的内容。 与实例的控制台的连接失败,错误1006.(获取控制台在其自己的浏览器选项卡中显示的所需URL使用nova get-vnc-console <ID> novnc并用FQDNreplace端点IP)。怀疑这个错误是由于从HTTP1.1升级到websocket标准的连接包含关于不能直接从浏览器访问的“公共”接口或NoVNC软件拒绝连接的信息到configuration的服务器地址/主机名(“公共”)与请求中的地址(代理名称/ IP)之间不匹配。 这些都是猜测。 Nginx的configuration文件 ssl_certificate /etc/nginx/certs/gateway.example.com.crt; ssl_certificate_key /etc/nginx/certs/gateway.example.com.key; ssl_dhparam /etc/nginx/certs/dh.pem; ssl_protocols TLSv1.2 TLSv1.1; ssl_ciphers AES256+EECDH:AES128+EECDH:!aNULL:!eNULL:!ECDSA:!SHA:!DSS; ssl_prefer_server_ciphers on; ssl_session_cache […]
我目前有我的服务器在my.server.com nginx设置。 使用当前configuration,我使用http://my.server.com/app1或http://my.server.com/app2访问不同的应用程序。 我有一个apps.conf放置在/etc/nginx/sites-enabled/是这样的: upstream app1_servers { server 172.12.11.10:8080; } upstream app2_servers{ server 172.12.11.10:9090; } server { listen 80; server_name my.server.com; return 301 https://my.server.com/$request_uri; #force https } server { listen 443; ssl on; ssl_certificate /etc/ssl/my.server.com/cert.pem; ssl_certificate_key /etc/ssl/my.server.com/priv.pem; server_name my.server.com; location /app1 { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Proto https; proxy_pass […]
在我们设置Apache-2.2和通过其他设备代理的反向代理服务器时遇到问题。 stream程是:Apache A – > proxy.abc.net – > Apache B 我们在Apache B上遇到的错误是 通过SNI提供的主机名proxy.abc.net和通过HTTP提供的主机名backend.abc.net不同 当前configuration <VirtualHost frontend.abc.com:80> ServerName frontend.abc.com SSLEngine on SSLOptions +StrictRequire SSLProtocol -all +TLSv1 SSLHonorCipherOrder On SSLCipherSuite RC4-SHA:HIGH:!ADH:!MD5 SSLCertificateFile conf/certs/cert.cer SSLProxyCACertificateFile certs/proxy.cer SSLCertificateKeyFile conf/certs/cert.pem SSLCertificateChainFile conf/certs/chain.cer DocumentRoot /foo/bar SSLProxyEngine On ProxyRequests Off ProxyPreserveHost off ProxyErrorOverride On SetEnv proxy-sendchunked 1 ProxyRemote "*" https://proxy.abc.net:8080 ProxyPass /foo […]
当我尝试将apache 2.2configuration为代理服务器时,我遇到了一个问题。 我有一个应用程序运行在我的后端服务器http://internal.mydomain.com/App1/ ,现在这个URL将成为$URL ,因为我是一个新人在这里,我无法在我的第一篇文章发布超过2个url。 如果在我的代理服务器上,我使用下面的configuration一切工作正常 UseCanonicalName off UseCanonicalPhysicalPort off ProxyPreserveHost On ProxyPassReverseCookieDomain internal.mydomain.com external.mydomain.com ProxyPass /App1/ $URL connectiontimeout=10 timeout=60 ProxyPassReverse /App1/ $URL 要访问的URL是external.mydomain.com/App1/ 但是,我的老板想要有一个不同的URL,像external.mydomain.com/my/app1/ ,所以我尝试了以下configuration UseCanonicalName off UseCanonicalPhysicalPort off ProxyPreserveHost On ProxyPassReverseCookieDomain internal.mydomain.com external.mydomain.com ProxyPass /my/app1/ $URL connectiontimeout=10 timeout=60 ProxyPassReverse /my/app1/ $URL 这应该工作,但是当我加载网页,后端服务器正在回答这个 Cache-Control: private Content-Type: text/html; charset=utf-8 Location: /App1/StartPage.aspx Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 […]
背景 我有一个Apache(与NginX反向代理)作为Web服务器。 我有一个论坛和图像主机服务运行。 但是如您所知,图像主机服务会导致很多networking带宽(Mbps)。 我想通过限制图像主机服务的虚拟主机的最大stream量来为我的论坛保留一些带宽。 我做了什么: 阿帕奇 我已经安装了mod_bw模块,以限制最大带宽。 它似乎工作得很好,因为它减慢了页面加载速度。 但这还不够。 我还需要限制下载速度,现在图像将全速下载。 所以这一个不工作(或部分工作),但我会保持在httpd.conf 。 Nginx的 内置模块limit_rate正在下载图像。 所以看起来如果将两个模块组合起来,映像主机服务可以在受限制的环境下运行。 但等一下…当我一次下载多个图像时,所有图像将以相同的有限速度下载。 例如我设置为50KB / s,如果我下载一个图像,最高速度是50KB / s。 然后下载另一个镜像文件,最后一个镜像文件下载速度为50KB / s,总共为100KB / s。 这不是我所需要的。 我真正需要的是: 无论同时有多less用户同时浏览图像主机网页,只能共享50KB / s的总带宽。 (只是一个例子,我会增加这个) 因为我有Apache和NginX,所以我不在乎把多个模块结合起来来帮助我实现目标。 请帮我解决问题,非常感谢!
我有一个应用程序,我不能configuration一个基地址。 假设它的url是192.168.1.100:8011 我想configurationnginx,这样我就可以进入一个像192.168.1.100/myapp myapp这样的url,并转到另一个应用程序。 我用来做的configuration只有当我有一个基地的url。 例如,如果我在192.168.1.100:8011/myapp上有一个应用程序,而我想使用nginx来使用192.168.1.100/myapp ,那么我没有任何问题,但是我不能这样做。 那可能吗 ?
到处都是我读的,nginx比apache快得多,特别是作为反向代理。 对我来说,它完全相反,我不能确定为什么。 我做错了吗? 对于一个简单的请求,用apache我得到了一个45毫秒的时间与Nginx的80毫秒 。 几乎是时间的两倍。 检查浏览器和“ab -n1000 -c5 https://myddomain.de ” Apache 2.4.10 Nginx 1.9.10 相关的Apacheconfiguration部分: <VirtualHost *:443> ServerName mydomain.de SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off ProxyPass / https://myipaddress:8443/prod/public/ ProxyPassReverse / https://myipaddress:8443/prod/public/ SSLEngine on SSLCertificateFile /blablcert.pem SSLCertificateKeyFile /blablaprivkey.pem </VirtualHost> Nginxconfiguration: server { # SSL configuration # listen 443 ssl http2; listen [::]:443 ssl […]
我有一个以下的configuration: <client> <ssl nginx> <80 nginx> <laravel> laravel有一个名为asset()的方法,它应该检测模式并输出正确的url。 但它没有,我问在stackoverflow的问题 – 但它清楚这是不是PHP的问题,但与服务器的东西。 我的直觉是<ssl nginx>没有把一些重要的信息传递给<80 nginx> 。 我可以添加一些<80 nginx>虚拟主机configuration,以便它认为请求来自https ? (客户端来自https,但laravel没有看到它只看到<80 nginx> )。 我试图添加proxy_set_header X-Forwarded-Proto https到虚拟主机configuration,但它没有改变任何东西。 <80 nginx> config: