1

我有一台只有一个 IP 地址但有很多域(和子域)的服务器,但每个域在我的主机服务器上都有专用的虚拟机。

我尝试将 mod_proxy 用于 ProxyPass 和 Reverse 请求,并且在 apache conf 中我做到了:

<VirtualHost *:80>
        ServerAlias mydomain.domain.com
        ProxyRequests Off
        <Proxy />
                Order deny,allow
                Allow from all
                ProxyPass http://192.168.1.8/
                ProxyPassReverse http://192.168.1.8/
        </Proxy>
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

<VirtualHost *:80>
        ProxyRequests Off
        ServerAlias domain.domain2.org
        ServerAlias subdomanin.domain.com
        DocumentRoot /var/www
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

在这个conf中:

domain.domain1.com -> go to 192.168.1.8
subdomanin.domain1.com and another domain  -> go to document root.

使用 ProxyRequests On 和“Allow from All”(此 conf),apache 是一个 openproxy ...使用此配置(和 ProxyRequest Off),如果有人使用代理 mydomain.domain.com 请求“www.google.it”,他不会没有谷歌,但服务器将其重定向到 myNumericIp

如果http://mydomain.domain.com/some请求使用 url http://my.Numeric.Ip/some otherwise 代理不响应任何内容重定向到 myNumericIp,那么正确的配置是什么)。

我试试这个:

<Proxy http://mydomain.domain.com/>
        Order deny,allow
        Allow from all
        ProxyPass http://192.168.1.8/
        ProxyPassReverse http://192.168.1.8/
</Proxy>

或这个:

<Proxy />
        Order deny,allow
        Allow from all
        ProxyPass http://192.168.1.8/
        ProxyPassReverse http://192.168.1.8/
</Proxy>
<Proxy *>
        Order deny,allow
        Deny from all
</Proxy>

但是不要工作...

4

1 回答 1

0

使用以下步骤:

1)更新虚拟文件: -

<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName mysite.com
ServerAlias www.mysite.com   ProxyRequests Off Order deny,allow Allow from all  <Location />
    ProxyPass http:// mysite.com:8000/
    ProxyPassReverse http:// mysite.com:8000/
</Location>

2) 启用必要的 Apache 模块

要启用这四个模块,请依次执行以下命令。

sudo a2enmod 代理

sudo a2enmod proxy_http

sudo a2enmod proxy_balancer

sudo a2enmod lbmethod_byrequests

3) 要使这些更改生效,请重新启动 Apache。

sudo systemctl 重启 apache2

于 2019-05-15T21:18:33.173 回答