【问题标题】:VirtualHosts not working (Mod_proxy, Proxmox)VirtualHosts 不工作(Mod_proxy、Proxmox)
【发布时间】:2012-02-06 09:16:56
【问题描述】:

对于初学者,我使用 Proxmox 来虚拟化几台机器。 现在我希望我的主机根据服务器名相应地重定向流量。 我的设置曾经工作过,但现在不知何故无法工作。

我的默认主机:

00_proxmox_domain_com.conf

NameVirtualHost *:80
<VirtualHost *:80>
ServerName proxmox.domain.com
ServerName *.proxmox.domain.com
#RewriteLog "/root/rewrite.log"
#RewriteLogLevel 10
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} !^/nrd/
RewriteCond %{REQUEST_URI} !^/images/
RewriteCond %{REQUEST_URI} !^/css/
RewriteCond %{REQUEST_URI} !^/javascript/
RewriteCond %{REQUEST_URI} !^/vncterm/
RewriteCond %{REQUEST_URI} !^/.*\.js$
RewriteCond %{REQUEST_URI} !^/login.pl$
RewriteCond %{HTTP_HOST} ^proxmox\.domain\.com$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R]
</VirtualHost>

然后我有几个类似的虚拟主机,(目前只有这一个被激活) 这应该将访问者发送到 IP 为 192.168.1.13 的虚拟服务器上的 PHPMyAdmin

02_pma_domain_com.conf

<VirtualHost *:80>
ServerName pma.domain.com
ServerName *.pma.domain.com

ProxyRequests Off

ProxyPreserveHost On

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass / http://192.168.1.13/
ProxyPassReverse / http://192.168.1.13/
</VirtualHost>

还有 Proxmox 虚拟主机文件

pve.conf

<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 1 
MaxSpareServers 2
MaxClients          50
MaxRequestsPerChild 30
</IfModule>

  ServerName localhost
  ServerSignature Off
  ServerTokens Prod
  ServerAdmin root
  AddDefaultCharset On

  # Hint: Ajax use KeepAlive, which in effect disables MaxRequestsPerChild,
  # so we need to disable KeepAlive to prevent exhaustive memory usage, or
  # at least make sure that periodic updaters interval > KeepAliveTimeout 
  KeepAlive Off

  DocumentRoot /usr/share/pve-manager/root
  <Directory />
Options FollowSymLinks
AllowOverride None
  </Directory>

  <Directory /usr/share/pve-manager/root>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
  </Directory>

  ErrorLog /var/log/apache2/error.log

  LogLevel warn

  # do not log access to our ajax services
  SetEnvIf Request_URI "^/ws/" dontlog

  CustomLog /var/log/apache2/access.log combined env=!dontlog 

  Alias /images/  /usr/share/pve-manager/images/
  Alias /css/ /usr/share/pve-manager/css/
  Alias /javascript/ /usr/share/javascript/
  Alias /vncterm/ /usr/share/vncterm/

  # avoid authentication when accessing favicon
  Alias /favicon.ico /usr/share/pve-manager/images/favicon.ico

  PerlModule Embperl
  EMBPERL_SESSION_ARGS "config=DB_File Lock=Semaphore"

  AddType text/html .epl

  PerlRequire /usr/share/pve-manager/root/startup.pl

  PerlSetVar PVESatisfy any     
  PerlSetVar PVEPath /  
  PerlSetVar PVELoginScript /login.pl

  PerlTransHandler PVE::URLRewrite

  Alias /nrd/ /__no_real_dir__/

  <Directory "/usr/share/pve-manager/root">
  AuthType PVE::AuthCookieHandler
  AuthName PVE
  PerlSetVar PVECookieName PVEAuthCookie
  #PerlSetVar AuthCookieDebug 5

  PerlAuthenHandler PVE::AuthCookieHandler->authenticate
  PerlAuthzHandler PVE::AuthCookieHandler->authorize

  require group root

  DirectoryIndex index.htm index.pl

  <FilesMatch ".*\.htm$">
EMBPERL_APPNAME PVE
    EMBPERL_SYNTAX EmbperlBlocks
    EMBPERL_OBJECT_BASE base.epl
EMBPERL_INPUT_ESCMODE 0
EMBPERL_ESCMODE 0
    SetHandler  perl-script
    PerlHandler Embperl::Object
    Options     ExecCGI
  </FilesMatch>
  <FilesMatch ".*\.epl$">
    Order allow,deny
    Deny From all
  </FilesMatch>
  <FilesMatch ".*\.pl$">
    SetHandler perl-script
PerlHandler ModPerl::Registry
    Options +ExecCGI
  </FilesMatch>

</Directory>

<Location /nrd/LOGIN>
  AuthType PVE::AuthCookieHandler
  AuthName PVE
  PerlSetVar PVECookieName PVEAuthCookie
  #PerlSetVar AuthCookieDebug 5
  SetHandler perl-script
  PerlHandler PVE::AuthCookieHandler->login
</Location>

<Location /ws/>
  SetHandler perl-script
  PerlHandler $PVE::HTMLServices::Obj->handler
</Location>

<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/pve/pve-ssl.pem
SSLCertificateKeyFile /etc/pve/pve-ssl.key

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

</VirtualHost>

如果您发现明显错误,请告诉我。

如果你有 proxmox 的有效安装,如果你能给我你的 pve.conf 会有所帮助 如果您的虚拟主机可以运行这些文件之一,那将是非常受欢迎的。

我尝试了几种方法来解决这个问题,但没有任何效果。

【问题讨论】:

    标签: apache2 virtualhost mod-proxy


    【解决方案1】:

    找到了,感谢: Apache 2.2 ignoring VirtualDocumentRoot VirtualHosts?

    ServerName 应该只有一个,并且不能包含任何通配符, 您应该改用 ServerAlias ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-13
      • 2020-08-01
      • 2017-06-13
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 2014-03-04
      • 2013-05-17
      相关资源
      最近更新 更多