抱歉,这个问题问得有点蠢。我对后端的东西还很陌生。
我正在尝试在之前设置了 NextCloud 和 Wikimedia 服务器的服务器上设置 Rocket Chat 服务器。
rocket chat 文档说我需要设置一个反向服务器代理来将传入流量路由到 rocket chat 服务器。我在他们的论坛上询问了我遇到的一个问题,有人告诉我我需要设置一个虚拟主机(我也依稀记得为 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
在这两种情况下,我都会向 sites-enabled 文件夹添加一个配置文件,该文件会告诉传入流量如何委派传入信息,对吗?如果我理解正确的话?
编辑:我以什么方式请求学习材料?不是,我只是在问一个关于特定区别的特定问题。 Stack Exchange 上有很多这样的问题。示例: https://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter
答案1
理解虚拟主机和代理之间的区别并不那么困难。
虚拟主机定义并限定特定域名的配置,通过它您可以在同一个 http 服务器上托管多个 web 服务(使用 http 因为它是通用的)
相反,代理是一种配置,它指示 http 服务器对于某个域名或 url 的 http 服务不是本地的,而是由远程或另一个 httpd 服务器提供服务。
通常您将在虚拟主机中设置代理配置。
更新添加带有内联注释的示例
这是 Vhost 监听所有接口 80 端口的定义:
<VirtualHost *:80>
此Vhost将应答的域名:
ServerName exampledomainA.it
域名别名:
ServerAlias www.exampledomainA.it
当您访问时,将执行已定义的本地路径http://exapmledomainA.it
DocumentRoot /var/www/html
代理定义,告诉 Web 服务器将对 exampledomainA.it/phpmyadmin 的请求转发到http://www_phpmyadmin/
ProxyPass "/phpmyadmin" "http://www_phpmyadmin/"
ProxyPassReverse "/phpmyadmin" "http://www_phpmyadmin/"
代理定义,告诉 Web 服务器将对 exampledomainA.it/blog 的请求转发到http://www_域名A/
ProxyPass "/blog" "http://www_domainA/"
ProxyPassReverse "/blog" "http://www_domainA/"
其他代理定义:
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine on
虚拟主机结束
</VirtualHost>