反向代理服务器和虚拟主机有什么区别?

Asl*_*nch 3 reverse-proxy virtualhost

如果这是一个愚蠢的问题,我很抱歉。我对后端的东西很陌生。

我正在尝试在我之前设置了 NextCloud 和 Wikimedia 服务器的服务器上设置 Rocket Chat 服务器。

Rocket 聊天文档说我需要设置一个反向服务器代理以将传入流量路由到 Rocket 聊天服务器。我在他们的论坛上询问了我遇到的问题,有人告诉我我需要设置一个虚拟主机(我也隐约记得为 nextcloud 和 wikimedia 做过这件事)。但是当我查找设置虚拟主机时,它看起来与设置反向服务器代理完全相同。我误解了什么吗?两者有什么区别?

以下是描述设置反向服务器代理的相关 RocketChat 文档:https://rocket.chat/docs/installation/manual-installation/configuring-ssl-reverse-proxy/

这是一个讨论设置虚拟主机的页面:https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16- 04

在这两种情况下,我都会将配置文件添加到启用站点的文件夹中,告诉传入流量如何委派传入信息,对吧?如果我理解正确的话?

编辑:我以什么方式请求学习材料?我不是,我是在问一个关于特定区别的特定问题。在堆栈交换中存在大量类似的问题。示例: https: //stackoverflow.com/questions/156767/whats-the-difference- Between-an -argument-and-a-parameter

/sf/ask/187978941/ Between-a-segmentation-fault-and-a-stack-overflow

Ato*_*X84 5

理解虚拟主机和代理之间的区别并不困难。

虚拟主机定义并界定特定域名的配置,这样您就可以在同一个 http 服务器上托管多个 Web 服务(使用 http 因为它是通用的)

相反,代理是一种配置,它指示 http 服务器提供某个域名或 url,http 服务不是本地的,而是由远程或另一个 httpd 服务器提供服务。

通常您会在虚拟主机中设置代理配置。

使用内嵌注释更新添加示例

这是 Vhost 在端口 80 上监听所有接口的定义:

<VirtualHost *:80>
Run Code Online (Sandbox Code Playgroud)

该虚拟主机将回答的域名:

    ServerName exampledomainA.it
Run Code Online (Sandbox Code Playgroud)

域名的别名:

    ServerAlias www.exampledomainA.it
Run Code Online (Sandbox Code Playgroud)

定义此代码的本地路径将在您访问http://exapmledomainA.it时执行

    DocumentRoot /var/www/html
Run Code Online (Sandbox Code Playgroud)

代理定义,告诉Web服务器将exampledomainA.it/phpmyadmin的请求转发到http://www_phpmyadmin/

    ProxyPass "/phpmyadmin" "http://www_phpmyadmin/"
    ProxyPassReverse "/phpmyadmin"  "http://www_phpmyadmin/"
Run Code Online (Sandbox Code Playgroud)

代理定义,告诉Web服务器将exampledomainA.it/blog的请求转发到http://www_domainA/

    ProxyPass "/blog"   "http://www_domainA/"
    ProxyPassReverse "/blog"    "http://www_domainA/"
Run Code Online (Sandbox Code Playgroud)

其他代理定义:

    ProxyRequests Off
    ProxyPreserveHost On
    RewriteEngine on
Run Code Online (Sandbox Code Playgroud)

虚拟主机结束

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)