目前,我正在使用mod_proxy_ajp将请求均衡到多个Tomcat服务器。 呼叫者使用客户端证书和ACL进行身份validation。 这一直工作正常,呼叫者以均匀的速度路由到任一服务器。 现在我想为每个用户预取和caching数据,所以每个Tomcat服务器都会为一组已知的用户提供服务。 所以我认为按字母顺序拆分主叫方会很好。 用户名(CN或DN)以AM开头,到服务器1,名字以[NZ]开头的用户转到服务器2.但是我不知道如何做这个工作。 目前我有: <Proxy balancer://lb-service> BalancerMember ajp://svr1:8009 loadfactor=1 BalancerMember ajp://svr2:8009 loadfactor=1 </Proxy> <Location /lookup> ProxyPass balancer://lb-service/lookup </Location> 我正在考虑使用mod_rewite来改变url,以包括用户的CN,但我似乎无法做到这一点。 我几乎坚持使用Apache mod_proxy_ajp和Tomcat进行负载平衡。 我可以更改运行Tomcat的服务来接受不同的请求。 任何人都有一个好办法做到这一点?
我跑了似乎看到一个几乎没有文件的情况下。 我试图通过HTTPS为Apache 2.2后面的内容提供服务。 该Apache服务器正在侦听两个IP地址,一个静态分配给该节点,另一个“浮动”IP由集群的主动节点使用。 域Alogging指向这个浮动IP,在HTTP中它工作正常。 服务器使用NameVirtualHost *:443进行设置,该部分涵盖了证书信息和SSL要求。 但在HTTPS中,我只能通过请求服务器的IP来访问服务器,而不是域或浮动IP。 这当然会导致证书域不匹配,并通过浮动IP的冗余。 任何build议将大大appriciated。 相关的httpd conf为此: Listen 443 NameVirtualHost *:443 <VirtualHost *:443> ServerName XXX SSLEngine on SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite SSLv3:+HIGH:+MEDIUM SSLCertificateFile "…" SSLCertificateKeyFile "…" SSLCertificateChainFile "…" </VirtualHost>
我在我的系统上有多个目录,例如, / var / www / dir1 / var / www / dir2 / var / www / dir3 而我想要做的是为每个目录生成一个服务器/客户端SSL证书,然后设置每个目录,使得客户端证书必须与服务器证书匹配才能访问该目录。 现在,如果有人拥有/ var / www / dir2的客户端证书,并且他们尝试访问/ var / www / dir1,他们将无法这样做,因为这些目录使用不同的证书。 这些目录中的每一个托pipe在相同的域(即domain.com/dir1,domain.com/dir2)上。 现在,我遇到的问题是我不完全确定如何在Apache中完成此任务。 (另外,我并不真正关心domain.com来要求SSL,但我确实希望目录需要它。)
在Linux上使用最新的Apache。 将两种不同的请求发送到两个不同的日志文件是不方便的,因为我喜欢通过shell实时查看日志文件。 我也less用很多。 另外,为什么不能合并伐木呢?
按照这些说明从Comodo安装SSL证书后,我发现apache将不再启动。 这是我的configuration: <VirtualHost *:80> ServerName latimer.io ServerAlias *.latimer.io ServerAdmin webmaster@localhost DocumentRoot /var/www/latimer.io/html # RewriteEngine On # RewriteCond %{HTTPS} off # RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} </VirtualHost> <VirtualHost *:443> ServerName latimer.io ServerAlias *.latimer.io ServerAdmin webmaster@localhost DocumentRoot /var/www/latimer.io/html SSLEngine On SSLCertificateKeyFile /etc/ssl/server.key.secure SSLCertificateFile /etc/ssl/latimer_io.crt SSLCertificateChainFile /etc/ssl/latimer_io.ca-bundle ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> Apache错误日志给出以下(不是很有帮助的)错误: [ssl:emerg] [pid 30910] AH02240: Server should […]
我有麻烦得到proxypass在Apache中工作。 我的configuration文件如下: <VirtualHost 1.2.3.4:443> ServerName example.com ServerAlias www.example.org ServerAdmin [email protected] DocumentRoot /home/admin/web/knyz.org/public_html ScriptAlias /cgi-bin/ /home/admin/web/knyz.org/cgi-bin/ Alias /vstats/ /home/admin/web/knyz.org/stats/ Alias /error/ /home/admin/web/knyz.org/document_errors/ #SuexecUserGroup admin admin CustomLog /var/log/apache2/domains/knyz.org.bytes bytes CustomLog /var/log/apache2/domains/knyz.org.log combined ErrorLog /var/log/apache2/domains/knyz.org.error.log <Directory /home/admin/web/knyz.org/public_html> AllowOverride All SSLRequireSSL Options +Includes -Indexes +ExecCGI </Directory> <Directory /home/admin/web/knyz.org/stats> AllowOverride All </Directory> SSLEngine on SSLVerifyClient none SSLCertificateFile /home/admin/conf/web/ssl.knyz.org.crt SSLCertificateKeyFile /home/admin/conf/web/ssl.knyz.org.key […]
我不希望我的客户端与Apache Web服务器协商SSL连接,而是希望他们使用后面的Tomcat服务器。 我怎么能这样做? 我当前的httpd.confconfiguration是: Listen 443 https SSLProxyEngine On ProxyPass / https://localhost:8443/ ProxyPassReverse / https://localhost:8443/ <VirtualHost _default_:443> SSLProxyEngine On ProxyPass / https://localhost:8443/ ProxyPassReverse / https://localhost:8443/ SSLEngine On SSLProtocol all -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key </VirtualHost> 它有效,但不是我想要的。 看来客户端正在与Apache和Apache Web服务器与Tomcat谈判。 (我所看到的是Apache Web服务器自签名证书)
我在我的服务器上遇到了我的VirtualHostconfiguration问题。 我的服务器运行Ubuntu 14.04.5 LTS(GNU / Linux 4.4.0-31-generic x86_64),Apache / 2.4.7(Ubuntu)。 我已经从这里的其他线程做了很多关于Apache和SNI的阅读,但是我一直没能解决我的具体问题。 我有几个VirtualHostsconfiguration从不同的域,每个都有自己的SSL证书,如下所示: <VirtualHost *:80> ServerAdmin [email protected] ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /home/user/mydomain.com/public_html ErrorLog /home/user/mydomain.com/logs/error.log CustomLog /home/user/mydomain.com/logs/access.log combined </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /home/user/mydomain.com/public_html ErrorLog /home/user/mydomain.com/logs/error.log CustomLog /home/user/mydomain.com/logs/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/mydomain.com.crt SSLCertificateKeyFile /etc/apache2/ssl/mydomain.com.key SSLCACertificateFile /etc/apache2/ssl/mydomain.com.root.crt SSLCertificateChainFile /etc/apache2/ssl/mydomain.com.chain.crt </VirtualHost> <VirtualHost […]
我几乎已经明白自己的想法了,但是我错过了一些东西。 我想设置几个目录和文件来要求SSL和其他与这些文件和目录无关的其他内容指向http。 到目前为止,我有这样的: RewriteEngine on RewriteBase / # Force ssl for login & admin RewriteCond %{HTTPS} !on RewriteRule ^/?(admin(.*)|login\.php)$ https://%{SERVER_NAME}/$1 [R,NC,L] # Force non-ssl for others RewriteCond %{HTTPS} on RewriteRule ^/?(admin(.*)|login\.php)$ http://%{SERVER_NAME}/$1 [R,NC,L] 我敢肯定,我做错了什么,但我无法弄清楚….第一个条件是完美的 – 每当我访问login.php或/ admin /它指向https。 但是第二个不… 我在哪里弄错了? 提前致谢!
所以我从startcom的免费SSL证书过期了,我去更新它。 我被给了一个粘贴在我的csr的内容,或者在他们的网站上生成一个新的select,所以我粘贴在我的csr。 通过整个域validation过程,获得了证书,并用新的证书文件replace旧的证书文件。 我重新启动apache,它[fail] 。 在日志中我发现这个: [Thu Jun 16 07:08:28 2011] [warn] RSA server certificate CommonName (CN) `mydomain.com' does NOT match server name!? [error] Unable to configure RSA server private key [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch 我确信ServerName指令说mydomain.com。 但是还在发生,所以我猜想可能是我的密钥错误或者错误的csr。 同时,我发出了一个请求开始通信,他们没有回到我身边。 所以我尝试了两个免费的SSL,comodo和rapidssl(freessl),遵循了所有的说明(包括生成一个新的csr),而且我仍然有同样的问题,