我有一个运行在Ubuntu 16.04 LTS上的Apache(2.4)web服务器和一个php(7.1)服务器。 我试图build立一个木偶清单,以在Apache服务器上创build一个虚拟主机,然后每当一个PHP服务器请求被networking服务器接收,Apache服务器将代理请求到PHP服务器,然后从文档中读取请求的页面根显示请求页面。 文档根目录由web服务器和php服务器共享。 在php服务器上设置了一个php fpm池来侦听端口9001上来自apache服务器的代理请求。当我运行“puppet agent -t”时,我没有得到任何错误,并且成功创build了虚拟主机。 一旦创build了虚拟主机,然后创build一个名为info.php的php文件,但是由于某种原因,当我打开一个浏览器并在url(example.com/info.php)中键入虚拟主机名时,页。 我在做什么错了? 下面是我使用的木偶清单。
class team::vhost { #Create the base web directory and the vhosts for the wesbite file { ['/var/wwws', '/var/wwws/web']: ensure => 'directory', } #Create non-ssl vhost apache::vhost { 'example.com non-ssl': #ensure => 'absent', servername => 'example.com', serveradmin => '[email protected]', serveraliases => [ 'www.example.com', ], docroot => '/var/wwws/web', port => '80', rewrites => [ { comment => 'Rewrite all non-ssl requests to ssl', rewrite_cond => ['%{HTTPS} off'], rewrite_rule => ['/(.*) https://%{SERVER_NAME}/$1 [R,L]'], } ], require => [ File['/var/wwws/web'], ] } #Create ssl vhost apache::vhost { 'example.com ssl': #ensure => 'absent', servername => 'example.com', serveradmin => '[email protected]', serveraliases => [ 'www.example.com', ], port => '443', docroot => '/var/wwws/web', ssl => true, directories => [ { path => '/var/wwws/web', provider => 'directory', rewrites => [ { comment => 'Redirect non-file requests to our application', rewrite_cond => [ '%{REQUEST_FILENAME} !-f', '%{REQUEST_FILENAME} !-d', ], rewrite_rule => ['^(.*)$ /info.php [QSA,L]'], } ], directoryindex => 'info.php', options => ['-MultiViews', '+Indexes', '+FollowSymLinks'], }, { 'path' => '\.php$', 'provider' => 'filesmatch', 'sethandler' => 'proxy:fcgi://192.168.2.4:9001' } ], require => [ File['/var/wwws/web'] ] } }
我想清楚是什么原因造成了这个问题。 iptables中有一个防火墙规则,阻止所有stream量,包括http(端口80)和https(端口443)。 我不得不冲我的iptables。 我可以通过使用“iptables -F”来清除我的iptables。 一旦我确定它正在工作,我重新应用了所有的iptables防火墙规则,并添加了另一个规则,只允许http和http通信到服务器。 现在都在工作。