AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1201137
Accepted
Taux1c
Taux1c
Asked: 2020-01-07 16:08:35 +0800 CST2020-01-07 16:08:35 +0800 CST 2020-01-07 16:08:35 +0800 CST

Apache 虚拟主机问题或 dns 问题?

  • 772

我之前发布了这个问题,但我想我写它的方式并不清楚。所以我删除了它,这里又是我能想到的尽可能多的信息。

我使用戴尔尺寸 2400 的旧计算机部件创建了一个服务器。我安装了带有 Linux 4.15.0-72-generic 内核的 Ubuntu 16.04.6 LTS。我安装了 mysql-server、apache2、certbot、pyton3、python-apache-certbot、php7.0、ssh、vsftpd,然后将我安装的所需端口转发到内部 ip。(192.168.1.23)。

然后我在服务器上设置了一个 wordpress 站点。问题是我设置了虚拟主机文件(如下所示),但是为了使站点正常工作,我必须使用网络内部 ip 来加载站点。


这是虚拟主机文件:

    <IfModule mod_ssl.c>
<VirtualHost 192.168.1.23:443>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain.com/public_html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
ServerName domain.com
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
~

请记住,这是工作的虚拟主机。

当我将其更改为域名 (domain.com:443) 时,它应该是不起作用的。

(端口 80 上的相同问题。)

我需要一个内部 dns 还是别的什么?

我尝试安装 bind 但要么我把它搞砸了,要么不是这样......或者两者兼而有之......老实说更倾向于两者。

无论如何,我希望这是足够的信息,并且有人能够对此有所了解。我希望能够在此服务器上托管另一个站点。

networking server dns apache2 virtualhost
  • 3 3 个回答
  • 4244 Views

3 个回答

  • Voted
  1. pa4080
    2020-01-07T22:02:54+08:002020-01-07T22:02:54+08:00

    该ServerName指令用于定义虚拟主机将接受的默认域名(以及ServerAlias默认域名的同义词)。此外,您不需要在<VirtualHost>标签中指定网络接口 IP 添加器(或域名),而您没有任何特殊目标 - 即为不同服务器的 IP 地址访问的同一域名提供不同的内容等。

    <IfModule mod_ssl.c>
    
        <VirtualHost _default_:443>
    
            ServerName example.com
            ServerAlias www.example.com www2.example.com
    
            # Other configuration directives...
    
        </VirtualHost>
    
    </IfModule>
    

    除非没有指向您服务器的公共 IP 地址的 FQDN,否则您需要设置本地 DNS 或您需要编辑hostsLAN 设备的文件,以便通过 LAN 内的域名访问您的(Web)服务器。有关详细信息,请阅读以下参考资料:

    • Apache2 Docs:基于名称的虚拟主机支持

    • 创建额外的虚拟主机 Ubuntu 服务器

    • 如何将域设置为ip地址?

    • 使用 Ubuntu 16.04 在 VirtualBox 上设置虚拟主机

    • apache虚拟主机不工作

    • 0
  2. Tim Schumacher
    2020-01-07T23:20:31+08:002020-01-07T23:20:31+08:00

    该ServerName指令仅由 Apache 用于了解它作为哪个域运行(在某些情况下,它用于根据域区分多个 VirtualHost)。它对尝试解析域的客户端没有影响。

    您需要进行哪些更改完全取决于您的设置。

    如果您想使用域,您仍然需要告诉客户端计算机它指向哪台 PC。这可以通过系统的hosts-file(更容易设置,特别是对于测试,但是为每台计算机设置很麻烦)或通过您自己的 DNS 服务器(设置和正确设置有点困难,但更多最后灵活)。(如果您使用的是“官方”域,而不是您自己发明的域,则这不适用。除非您想在本地网络中将 domain.com 解析为您的内部 IP。)

    要检查域本身是否设置正确,请通过ifconfig.coifconfig -a之类的页面在服务器上检查您的公共 IP(或本地 IP,具体取决于您的设置) ,并将其与或返回的 IP 进行比较。如果它们返回相同,则您的域已正确设置为指向您的公共 IP。如果他们不这样做,您将不得不更改您的域指向的位置,但我对此无能为力。dig domain.comnslookup domain.com

    如果您想从公共互联网访问该页面,您将不得不担心 NAT。NAT(或“网络地址转换”)通过单个公共 IP 处理多个内部设备的通信(在您的情况下可能设置了类似的东西)。您的路由器目前不知道应该将端口 80/443 上的传入数据包发送到哪台计算机,这可能是您的问题的一个可能原因。要正确设置,请搜索如何在您的特定路由器上设置“端口转发”,并将其设置为将端口 80 和 443 上的所有传入 TCP 数据包发送到本地网络中服务器上的同一端口。

    您可能还需要注意 VirtualHost 指令,您专门在其中放置了本地 IP(尽管我无法想象这在您当前的设置中是一个问题,但更有可能是其他原因)。这基本上告诉 Apache 只监听该特定 IP 上的传入连接。设置 NAT 后,这应该没问题,因为请求会发送到本地网络的接口。如果您在完成其他步骤后仍然遇到问题,您可能需要尝试用星号替换该 IP 地址,从而使 Apache 侦听所有接口。这将消除可能的错误的另一个(如果非常小)原因。

    • 0
  3. Best Answer
    Taux1c
    2020-01-08T16:42:59+08:002020-01-08T16:42:59+08:00

    所以经过大量的时间和研究,我想通了。有很多问题,但主要的解决方案是,例如,这将<virtualhost 192.168.1.23 askubuntu.com:80>是现在与多个虚拟主机一起工作。

    我确实在通过端口 443 和其他问题提供 http 服务时遇到了一些问题。在我弄清楚这一点后,我重新格式化了整个磁盘并重新安装了所有东西。

    现在像魅力一样奔跑!

    感谢所有的帮助!

    • 0

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve