我坚持使用容器化的虚拟主机。 设置如下: mydomain.com Ubuntu VPS(digitalOcean,上下文),Docker预安装 Apache容器(反向代理),访客端口80到主机80 Web应用程序容器(运行apache),访客端口80到主机8081 Apache服务很好,Apache的信息页面显示在mydomain.com和Web应用程序显示在mydomain.com:8081 问题是试图ProxyPass sub.mydomain.com服务于mydomain.com:8081 我在Apache容器中devise了以下站点 – available / sub.mydomain.com.conf。 <VirtualHost *:80> ServerName sub.mydomain.com ProxyPreserveHost on ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass "/" "http://localhost:8081/" retry=0 ProxyPassReverse "/" "http://localhost:8081/" 但是,sub.mydomain.com返回503错误。 我还用digitalOcean添加了以下DNSlogging: – CNAME:* .mydomain.com是mydomain.com的别名 – A:sub.mydomain.com指向[DROPLET IP] 我也尝试过:取代'localhost': ProxyPass "/" "http://localhost:8081/" retry=0 ProxyPassReverse "/" "http://localhost:8081/" 与mydomain.com和DROPLET […]
我正在我自己的服务器上为一个虚拟主机安装一个letsencrypt服务器。 成功创build证书后,我收到如下消息: Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.net/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.net/privkey.pem (我实际上已经改变了域名来保护这个,没有任何理由)。 当我查看目录时,我发现以下内容 ls /etc/letsencrypt/live/example.net cert.pem@ chain.pem@ fullchain.pem@ privkey.pem@ README 所以,我有四个链接指向四个真实的文件。 在我的.conf文件中,我有这样的东西(使用版本1): <VirtualHost *:443> ServerName example.net:443 ServerAlias *.example.net ServerAdmin [email protected] VirtualDocumentRoot /data/httpd/html/example.net/%-3 SSLEngine on # Version 1 SSLCertificateFile /etc/letsencrypt/live/example.net/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.net/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.net/chain.pem # Version 2 […]
我的开发环境是基于CentOS的docker容器。 我configuration了2个虚拟主机。 默认的虚拟主机,看起来基本上是这样的: <VirtualHost *:443> ServerName my.local.domain.com ServerAlias *.domain.com 和一个特定的虚拟主机 <VirtualHost local.otherdomain.com:443> ServerName local.otherdomain.com:443 在我的主机上,/ etc / hosts看起来像这样: 127.0.0.1 localhost my.local.domain.com test.local.domain.com local.otherdomain.com 容器的主机文件由dockerpipe理,因为它是默认的。 现在我面临以下问题:每个来自外部世界的呼叫(主机系统)都像一个魅力,但内部呼叫不起作用。 像这个: curl –insecure -X POST https://test.local.domain.com/rest/balance 我有两个虚拟主机的ssl_access日志,我可以看到内部请求使用错误的(local.otherdomain.com)虚拟主机,而不是另一个。 如前所述,它适用于来自主机的呼叫。 任何想法如何可能?
我有在AWS EC2上运行的apache。 我已经将我的域名指向Amazon Route 53进行DNSpipe理,并为主域名(www.domain.co.uk)和一个子域名(api.domain.co.uk)创build了Alogging,这两个logging都指向我的公有IP EC2实例。 我创build了一个虚拟主机configuration来尝试将www和api指向不同的文件夹 – <VirtualHost *:80> ServerName www.domain.co.uk ServerAlias domain.co.uk DocumentRoot /var/www/html/www <Directory /var/www/html/www> AllowOverride All </Directory> </VirtualHost> <VirtualHost *:80> ServerName api.domain.co.uk ServerAlias api.domain.co.uk DocumentRoot /var/www/html/api <Directory /var/www/html/api> AllowOverride All </Directory> </VirtualHost> <VirtualHost *:80> ServerName default:80 DocumentRoot /var/www/html </VirtualHost> 当我在浏览器中访问www.domain.co.uk时,它提供了正确的内容。 但是,当我访问api.domain.co.uk它返回的内容从www.domain.co.uk 。 我已经在虚拟主机文件和ServerName和ServerAlias不同变体中尝试了不同的序列,但是它始终返回文件中的第一个条目(将api条目切换到顶部将返回两个url的api内容)。 任何build议将不胜感激!
我们有一个Centos nginxnetworking服务器上的一些网站。 通常我们把nginx:nginx作为所有者,拥有775个权限,开发者是nginx组的一部分。 如果您想知道为什么开发人员需要在那里编写代码,那么我们就是一个不同的人,像git pull在服务器上一样。 问题是,其中一个网站被黑客攻击(从一个WordPress的错误)和所有的网站都在/ www / docs / websitename所有这些都被入侵。 有没有办法允许nginx和用户的正常工作没有“traspassing”?
我试图将虚拟主机条目迁移到新的服务器,但页面仍然是从旧的服务器提供。 我在新服务器上做了什么: 我已经为sites-available的域名创build了条目,并在sites-enabled sites-available创build了符号链接。 Conf文件看起来像这样 <VirtualHost *:80> ServerName domain_name:80 ServerAdmin [email protected] DocumentRoot "/home/domain/Sites" DirectoryIndex index.html index.php </VirtualHost> 我在/etc/httpd/conf/httpd.conf激活了NameVirtualHosts *:80 我编辑/etc/hosts来包含server_ip domain_name 在旧的服务器上,我所做的唯一的事情就是删除我试图移动的站点的VirtualHost条目。 但我仍然从旧服务器获取内容。 我不确定在旧服务器上是否需要执行其他操作,以便将虚拟主机正确迁移到新服务器。
我在使用sslencryption时遇到了Apache 2.4.18服务器的问题。 我的服务器设置是:apache服务器将端口80(http)上的所有内容redirect到端口443(ssl),这是通过不同的站点configuration实现的。 现在我的问题是:如果我打开链接https://www.example.com ,我得到我想要的网站。 但是,如果我打开https://example.com ,我得到错误: ERR_CONNECTION_REFUSED 为什么这样,我该如何解决呢? 虚拟主机文件的SSL: <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # SSLCertificateFile directive is needed. SSLCertificateFile /etc/letsencrypt/live/footprintgaming.de/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/footprintgaming.de/privkey.pem #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4
我在80端口的Apache服务器后面有一个端口8080的Tomcat服务器。 我有虚拟主机设置与mod_rewriteredirect到Tomcat使用下面的行000-default.conf: <VirtualHost *:80> ProxyPreserveHost Off ProxyRequests Off RewriteEngine On RewriteOptions inherit ServerName job.nvoids.in ServerAlias jobs.nvoids.com jobs.nvoids.in www.jobs.nvoids.in ProxyPass / http://localhost:8080/jobs/ ProxyPassReverse / http://localhost:8080/jobs/ ProxyPassReverseCookieDomain localhost:8080 job.nvoids.in </VirtualHost> 现在,我在Tomcat服务器上丢失了所有会话。 例如,我保留在每个页面加载的会话http://nvoids.in:8080/jobs/post.jsp (你可以在页面中看到会话ID),但不幸的是在http://job.nvoids.in /post.jsp我每次重新加载页面时都会收到一个新的会话。 如何保留Apache URL重写的会话?
我在我的httpd.conf中有一个虚拟主机,充当反向代理。 它工作正常,我能够取代文字与我想要的,但我想包括一个文件.. ServerName example.cm ServerAlias www.example.cm Options +FollowSymLinks Options +Includes RequestHeader unset Accept-Encoding RewriteEngine on RewriteRule ^example w [L] FilterDeclare CUSTOMFILTER FilterProvider CUSTOMFILTER SUBSTITUTE resp=Content-Type $* FilterProvider CUSTOMFILTER SUBSTITUTE resp=Content-Type $/html FilterDeclare Sub FilterProvider Sub SUBSTITUTE resp=Content-Type $text/html FilterDeclare SSI FilterProvider SSI INCLUDES resp=Content-Type $text/html <Location /> ProxyPass http://www.example.com/ ProxyPassReverse http://www.example.com/ AddOutputFilterByType SUBSTITUTE text/html Substitute […]
我有两个Laravel站点:一个首页和一个API站点。 我的客户稍后会将子站点上的API站点分开,但目前客户希望从login页面的“子文件夹”内部提供API(主要是因为他还没有通配符SSL / TLS证书)。 它应该是这样的: http://example.com – 可能包含一些子路由的首页,例如http://example.com/contact-us http://example.com/api/ – API 我不想把两个项目的代码混在一起; 他们正在由不同的开发人员维护,因此将该文件夹映射为Apache VirtualHost似乎是一种方法。 我做了如下: <VirtualHost *:80> DocumentRoot "/sites/front-page/public" ServerName somedomain.com ServerAlias www.somedomain.com <Directory "/sites/front-page/public"> AllowOverride All Require all granted </Directory> Alias /api "/sites/api/public" <Directory "/sites/api/public"> AllowOverride All Require all granted </Directory> </VirtualHost> 现在,当我访问http://example.com/api/ ,确实从API网站调用了index.php 。 但是,如果我打电话http://example.com/api/some-resource它从头版网站调用index.php ,并失败,404找不到。 我也试过了 AliasMatch "^/api(/|$)(.*)" "/sites/api/public" 但是即使是http://example.com/api/ 403的禁止页面( http://example.com和它的path工作正常,虽然)失败了。 […]