繁体   English   中英

Apache 反向代理到 CentOS 7 (WHM) 上的 nodejs 服务器

[英]Apache reverse proxy to nodejs server on CentOS 7 (WHM)

我正在尝试在服务器上设置我的网站。 我已经上传了它,它目前正在服务器上运行,但是当我尝试在域上设置反向代理以便我可以访问该站点时,问题就来了。 我遵循了关于如何进行反向代理的 WHM 文档,它确实有效,但它也重定向了子域。 以下是我修改单个虚拟主机所遵循的教程。

https://docs.cpanel.net/ea4/apache/modify-apache-virtual-hosts-with-include-files/

简而言之,我希望能够在不影响我的子域 webmail.example.com 的情况下访问我的站点 example.com。 下面是我的conf文件

   ServerName example.com
    ServerAlias www.example.com

    ProxyRequests Off
    <Proxy *>
       Require all granted
    </Proxy>

   ProxyPass / http://127.0.0.1:3000/
   ProxyPassReverse / http://127.0.0.1:3000/

以下是我尝试更改位于 httpd.conf 文件中的同一虚拟主机的默认设置

<VirtualHost 196.41.123.76:80>
 ServerName example.com
    ServerAlias mail.example.com www.example.com
  DocumentRoot /home/gusqooqw/public_html
  ServerAdmin webmaster@mtsd.co.za
  UseCanonicalName Off

  ## User gusqooqw # Needed for Cpanel::ApacheConf
  <IfModule userdir_module>
    <IfModule !mpm_itk.c>
      <IfModule !ruid2_module>
        <IfModule !mod_passenger.c>
          UserDir enabled gusqooqw
        </IfModule>
      </IfModule>
    </IfModule>
  </IfModule>

  # Enable backwards compatible Server Side Include expression parser for Apache versions >= 2.4.
  # To selectively use the newer Apache 2.4 expression parser, disable SSILegacyExprParser in
  # the user's .htaccess file.  For more information, please read:
  #    http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
  <IfModule include_module>
    <Directory "/home/gusqooqw/public_html">
      SSILegacyExprParser On
    </Directory>
  </IfModule>



  <IfModule suphp_module>
    suPHP_UserGroup gusqooqw gusqooqw
  </IfModule>
  <IfModule suexec_module>
    <IfModule !mod_ruid2.c>
      SuexecUserGroup gusqooqw gusqooqw
    </IfModule>
  </IfModule>
  <IfModule ruid2_module>
    RMode config
    RUidGid gusqooqw gusqooqw
  </IfModule>
  <IfModule mpm_itk.c>
    # For more information on MPM ITK, please read:
    #   http://mpm-itk.sesse.net/
    AssignUserID gusqooqw gusqooqw
  </IfModule>
  <IfModule mod_passenger.c>
    PassengerUser gusqooqw
    PassengerGroup gusqooqw
  </IfModule>

  <IfModule alias_module>
    ScriptAlias /cgi-bin/ /home/gusqooqw/public_html/cgi-bin/
  </IfModule>


    # Global DCV Rewrite Exclude
    <IfModule rewrite_module>
        RewriteOptions Inherit
    </IfModule>






  Include "/etc/apache2/conf.d/userdata/std/2_4/gusqooqw/example.com/*.conf"


  # To customize this VirtualHost use an include file at the following location
  # Include "/etc/apache2/conf.d/userdata/std/2_4/gusqooqw/example.com/*.conf"
<VirtualHost>

下面是在 httpd.conf 中找到的默认 webmail 虚拟主机

<VirtualHost 196.41.123.76:443>
  ServerName mtsd.co.za
  ServerAlias mail.mtsd.co.za www.mtsd.co.za cpcalendars.mtsd.co.za webdisk.mtsd.co.za webmail.mtsd.co.za cpcontacts.mtsd.co.za cpanel.mtsd.co.za
  DocumentRoot /home/gusqooqw/public_html
  ServerAdmin webmaster@mtsd.co.za
  UseCanonicalName Off

  ## User gusqooqw # Needed for Cpanel::ApacheConf
  <IfModule userdir_module>
    <IfModule !mpm_itk.c>
      <IfModule !ruid2_module>
        <IfModule !mod_passenger.c>
          UserDir enabled gusqooqw
        </IfModule>
      </IfModule>
    </IfModule>
  </IfModule>

  # Enable backwards compatible Server Side Include expression parser for Apache versions >= 2.4.
  # To selectively use the newer Apache 2.4 expression parser, disable SSILegacyExprParser in
  # the user's .htaccess file.  For more information, please read:
  #    http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
  <IfModule mod_include.c>
    <Directory "/home/gusqooqw/public_html">
      SSILegacyExprParser On
    </Directory>
  </IfModule>


  <Proxymatch ^https?://127\.0\.0\.1:(2082|2083|2077|2078|2079|2080|2086|2087|2095|2096)/>
       <IfModule security2_module>
          SecRuleEngine Off
       </IfModule>
  </Proxymatch>
  IfModule mod_suphp.c>
    suPHP_UserGroup gusqooqw gusqooqw
  </IfModule>
  <IfModule suexec_module>
    <IfModule !mod_ruid2.c>
      SuexecUserGroup gusqooqw gusqooqw
    </IfModule>
  </IfModule>
  <IfModule ruid2_module>
    RMode config
    RUidGid gusqooqw gusqooqw
  </IfModule>
  <IfModule mpm_itk.c>
    # For more information on MPM ITK, please read:
    #   http://mpm-itk.sesse.net/
    AssignUserID gusqooqw gusqooqw
  </IfModule>
  <IfModule mod_passenger.c>
    PassengerUser gusqooqw
    PassengerGroup gusqooqw
  </IfModule>

  <IfModule alias_module>
    ScriptAlias /cgi-bin/ /home/gusqooqw/public_html/cgi-bin/
  </IfModule>
  <IfModule ssl_module>
    SSLEngine on

    SSLCertificateFile /var/cpanel/ssl/apache_tls/mtsd.co.za/combined

    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    <Directory "/home/gusqooqw/public_html/cgi-bin">
      SSLOptions +StdEnvVars
    </Directory>
     </IfModule>





    Include "/etc/apache2/conf.d/userdata/ssl/2_4/gusqooqw/mtsd.co.za/*.conf"




  # To customize this VirtualHost use an include file at the following location
  # Include "/etc/apache2/conf.d/userdata/ssl/2_4/gusqooqw/mtsd.co.za/*.conf"

    <IfModule headers_module>
    RequestHeader set X-HTTPS 1
    </IfModule>

    RewriteEngine On
            RewriteCond %{HTTP_HOST} =cpanel.mtsd.co.za [OR]
            RewriteCond %{HTTP_HOST} =cpanel.mtsd.co.za:443
        RewriteCond %{HTTP:Upgrade} !websocket   [nocase]

        RewriteRule ^/(.*) /___proxy_subdomain_cpanel/$1 [PT]
                ProxyPass "/___proxy_subdomain_cpanel" "http://127.0.0.1:2082" max=1 retry=0
            RewriteCond %{HTTP_HOST} =cpcalendars.mtsd.co.za [OR]
            RewriteCond %{HTTP_HOST} =cpcalendars.mtsd.co.za:443
        RewriteCond %{HTTP:Upgrade} !websocket   [nocase]

        RewriteRule ^/(.*) /___proxy_subdomain_cpcalendars/$1 [PT]
                ProxyPass "/___proxy_subdomain_cpcalendars" "http://127.0.0.1:2079" max=1 retry=0
            RewriteCond %{HTTP_HOST} =cpcontacts.mtsd.co.za [OR]
            RewriteCond %{HTTP_HOST} =cpcontacts.mtsd.co.za:443
        RewriteCond %{HTTP:Upgrade} !websocket   [nocase]
RewriteRule ^/(.*) /___proxy_subdomain_cpcontacts/$1 [PT]
                ProxyPass "/___proxy_subdomain_cpcontacts" "http://127.0.0.1:2079" max=1 retry=0
            RewriteCond %{HTTP_HOST} =webdisk.mtsd.co.za [OR]
            RewriteCond %{HTTP_HOST} =webdisk.mtsd.co.za:443
        RewriteCond %{HTTP:Upgrade} !websocket   [nocase]

        RewriteRule ^/(.*) /___proxy_subdomain_webdisk/$1 [PT]
                ProxyPass "/___proxy_subdomain_webdisk" "http://127.0.0.1:2077" max=1 retry=0
            RewriteCond %{HTTP_HOST} =webmail.mtsd.co.za [OR]
            RewriteCond %{HTTP_HOST} =webmail.mtsd.co.za:443
        RewriteCond %{HTTP:Upgrade} !websocket   [nocase]

        RewriteRule ^/(.*) /___proxy_subdomain_webmail/$1 [PT]
                ProxyPass "/___proxy_subdomain_webmail" "http://127.0.0.1:2095" max=1 retry=0

            RewriteCond %{HTTP:Upgrade} websocket   [nocase]
                RewriteCond %{HTTP_HOST} =cpanel.mtsd.co.za [OR]
                RewriteCond %{HTTP_HOST} =cpanel.mtsd.co.za:443

            RewriteRule ^/(.*) /___proxy_subdomain_ws_cpanel/$1 [PT]
            RewriteCond %{HTTP:Upgrade} websocket   [nocase]
                RewriteCond %{HTTP_HOST} =webmail.mtsd.co.za [OR]
                RewriteCond %{HTTP_HOST} =webmail.mtsd.co.za:443

            RewriteRule ^/(.*) /___proxy_subdomain_ws_webmail/$1 [PT]
</VirtualHost>

因此,在联系了 cpanel 支持后,他们无法回答为什么我上面使用的方法不起作用,他们提供了替代解决方案。 我最终在 Cpanel 上使用了一个名为 Application manager 的界面。 这是在 cpanel 服务器上安装 nodejs 应用程序的最简单方法。 以下是有关如何使用它来运行您的应用程序的文档

https://docs.cpanel.net/knowledge-base/web-services/how-to-install-a-node.js-application/

希望这可以帮助某人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM