簡體   English   中英

如何使域在特定端口下工作?

[英]How to make a domain work under a specific port?

我的服務器上運行着一個apache實例,它使用端口80。我還有一個使用8081端口的nodejs應用程序。現在有幾個指向服務器的域。 Apache處理所有請求並響應所有請求。 我只希望NodeJS應用程序響應一個域。 換句話說,我想要一個指向服務器的域來運行NodeJS應用程序。

那正是我想要做的: 在此處輸入圖片說明

這是的配置文件。

/etc/named.conf

options {
        #listen-on port 53 { 127.0.0.1; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        allow-transfer { localhost; ip-address; };
        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone “maindomain.com” IN {
        type master;
        file “maindomain.com.zone”;
        allow-update { none; };
};  
zone “domain1.com” IN {
        type master;
        file “domain1.com.zone”;
        allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

這是區域文件。

/etc/named/domain1.com.zone

$TTL 86400
@       IN      SOA     ns1.maindomain.com. maindomain.com. (
        2013042201
        3600
        1800
        604800
        86400
)

        IN      NS      ns1. maindomain.com.
        IN      NS      ns2. maindomain.com.

@       IN      A       ip
www     IN      A       ip
*       IN      A       ip
_http._tcp.domain1.com.    IN      SRV     0       5       8081    domain1.com.

我將要與NodeJS應用程序一起使用的域添加到hosts文件中。 但是什么都沒有改變。 /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
ip::8081             domain1.com

如@galkin所述,您需要將請求傳遞到端口8081。將其添加到httpd.conf文件中。

<VirtualHost *:80> 
ServerAlias domain1.com 
ProxyPass / http://ip-addresss:8081/ 
</VirtualHost>

對於503錯誤,請嘗試運行此命令並重新啟動apache。

# /usr/sbin/setsebool httpd_can_network_connect 1

您需要ProxyPass指令。 它看起來像這樣:

<VirtualHost www.domain3.com:80>
    ProxyPreserveHost On
    ProxyRequests off
    ProxyPass / http://localhost:8081/
    ProxyPassReverse / http://localhost:8081/
</VirtualHost>

另外,通常使用NGINX + Node.js解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM