zoukankan      html  css  js  c++  java
  • 使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名

    Nginx 服务绑定域名

    https://help.aliyun.com/knowledge_detail/41091.html?spm=a2c4e.11155515.0.0.4lvCpF

    以 YUM 安装的 Nginx 为例:

    1. 执行命令 vi /etc/nginx/nginx.conf 编辑 Nginx 的配置文件,将默认的server {...} 配置修改为以下内容:

      1. server {
      2. listen 80 default_server;
      3. server_name www.123.com;
      4. root /home/web1;
      5. location / {
      6. }
      7. error_page 404 /404.html;
      8. location = /40x.html {
      9. }
      10. error_page 500 502 503 504 /50.xhtml;
      11. location = /50x.html {
      12. }
      13. }
      14. server {
      15. server_name www.abc.com;
      16. root /home/web2;
      17. location / {
      18. }
      19. error_page 404 /404.html;
      20. location = /40x.html {
      21. }
      22. error_page 500 502 503 504 /50x.html;
      23. location = /50x.html {
      24. }
      25. }
      • 访问 www.123.com 时,跳转到 /home/web1 目录。
      • 访问 www.abc.com 时,跳转到 /home/web2 目录。
    2. 执行命令 nginx -s reload 重启 Nginx 服务。

    Tomcat 服务绑定域名

    1. 执行命令 vi /etc/TOMCAT_HOME/conf/server.xml编辑 Tomcat 配置文件。

      default_web

      将上述内容修改为:

      1. <Host name="localhost" appBase="webapps" unpackWARs="true" autoPlay="true">
      2. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
      3. </Host>
      4. <Host name="120.76.210.250" appBase="/data/wwwroot/web" unpackWARs="true" autoPlay="true">
      5. <Content path="" docBase="/data/wwwroot/web" debug="0" reloadable="false" crossContext="true" />
      6. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="120.76.210.250_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
      7. </Host>
      8. <Host name="www.abc.com" appBase="/data/wwwroot/default" unpackWARs="true" autoPlay="true">
      9. <Content path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true" />
      10. <Value className="org.apache.catalina.valves.AccessLogValue" directory="logs" prefix="www.abc.com_access_log." suffix=".txt" pattern="%h %l %u %c &quot;%r&quot; %s %b" />
      11. </Host>
      • 访问 www.abc.com 时,默认跳转到 /data/wwwroot/default 目录。
      • 访问 120.76.210.250 时,默认跳转到 /data/wwwroot/web 目录。
    2. 运行 bin/shutdown 关闭 Tomcat 服务,再运行 bin/startup 重启 Tomcat 服务。

    Apache 服务绑定域名

    以一键安装包配置的 Apache 环境为例:

    1. 执行命令 cd /alidata/server/httpd/conf/vhosts/ 进入站点配置文件目录。

    2. 执行命令 vi aa.conf 新建一个配置文件,按下键盘上的字母 “I” 键,复制并粘贴以下内容:

      1. Order allow,deny
      2. Deny from all
      3. DocumentRoot /alidata/www/test
      4. ServerName www.test.com
      5. ServerAlias test.com
      6. ErrorLog "/alidata/log/httpd/test-error.log"
      7. CustomLog "/alidata/log/httpd/test.log"

      注意:您需要修改对应的日志名字以区分不同网站的日志信息。

    3. 执行命令 /alidata/server/httpd/bin/apachectl restart 重启 Apache 服务。

    Apache 服务配置实现多域名跳转

    假设程序目录为 /var/www/html,网站目录结构如下:

    websitedirectory

    1. 开启 Apache 的虚拟主机功能,配置对应的虚拟主机到对应的目录即可。

      80

      documentroot

      实现效果

      • 使用 a.example.com 访问时,实际是访问 /var/www/html/a 目录。
      • 使用 b.example.com 访问时,实际是访问 /var/www/html/b 目录。
      • 使用 c.example.com 访问时,实际是访问 /var/www/html/c 目录。

    Apache 服务配置二级域名

    前提条件:您有一个泛域名解析的顶级域名,例如: aliyun.com 。

    1. 在 httpd.conf 中打开 mod_rewrite 模块;
    2. 在 httpd.conf 的最后,添加以下内容:

      1. RewriteEngine on
      2. RewriteMap lowercase int:tolower
      3. RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
      4. RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
      5. RewriteCond ${vhost:%1} ^(/.*)$
      6. RewriteRule ^/(.*)$ %1/$1

      注意:/usr/local/etc/apache 是 Apache 服务配置文件所在路径,您需要根据实际情况修改。

    3. 执行命令 vi vhost.map 新建文件,复制并粘贴以下内容:

      1. www.aliyun.com /usr/local/www/data-dist/aliyun
      2. bbs.aliyun.com /usr/local/www/data-dist/aliyunbbs
      3. anyname.aliyun.com /usr/local/www/data-dist/anyname

      注意:请注意保持域名+空格+绝对路径的格式。

    4. 在根目录 /usr/local/www/data-dist 下创建对应目录:aliyun , bbs , any name 等目录。

      • 通过浏览器访问 www.aliyun.com 时,实际上访问的就是 /usr/local/www/data-dist/aliyun 目录下的文件。
      • 通过浏览器访问 bbs.aliyun.com 时,实际上访问的就是 /usr/local/www/data-dist/aliyunbbs 目录下的文件。

    您可以通过修改 vhost.map 来增加、删除和修改您的二级域名和所指向的实际路径,不需要重启 Apache 服务。

    Apache 禁止未经许可的域名访问 ECS 上的网站

    ECS 实例上的网站被人恶意指向,例如,您的实例 IP 地址为 123.123.123.123,正常服务的域名为 www.abc.com , 恶意用户使用其他的域名 www.fake.com , 指向 123.123.123.123,此时客户端访问 www.fake.com 时会出现您的网站内容。

    通过 Apache 的虚拟主机可以变通的解决这个问题。以如下场景为例:

    Apache 版本号ECS 实例上的网站
    2.2.15 http://t1.huigher.cn/
    http://p1.huigher.cn/
    1. 打开 Apache 的实际配置文件,如执行命令 vi /etc/httpd/conf/httpd.conf 打开 CentOS 的 Apache 配置文件,加入以下内容:

      1. 加入代码 NameVirtualHost *:80,告知 Apache 使用基于 host 名的虚拟主机功能:

      2. 加入以下代码。

        1. <ViretualHost *:80>
        2. DocumentRoot /var/www/html/error/
        3. ServerName *
        4. ErrorLog logs/dummy-host.example.com-error_log
        5. CustomeLog logs/dummy-host.example.com-access_log common
        6. </ViretualHost>

        注意:当客户端携带的 host 名不在之后设置的网站域名内时,会指向一个 403 错误页面告知用户域名非法,其中 DocumentRoot 是放置错误提示页面的目录,在下面可以放置一个简单的 html 页面提示用户正在访问非法域名。

      3. 加入以下代码。

        1. <VirtualHost *:80>
        2. ServerAdmin p1@huigher.cn
        3. DocumentRoot /var/www/html/another/
        4. ServerName p1.huigher.cn
        5. ErrorLog logs/p1.huigher.cn-error_loh
        6. CustomLog logs/p1.huigher.cn-access_log common
        7. </VirtualHost>
        8. <VirtualHost *:80>
        9. ServerAdmin t1@huigher.cn
        10. DocumentRoot /var/www/html/
        11. ServerName t1.huigher.cn
        12. ErrorLog logs/t1.huigher.cn-error_loh
        13. CustomLog logs/t1.huigher.cn-access_log common
        14. </VirtualHost>

        注意:这一步告知 Apache 合法的网站主机头,您需要根据实际情况修改这个代码块内容,如示例中的 p1.huigher.cn 和 t1.huigher.cn。

    2. 执行命令 /etc/httpd/bin/apachectl restart 重启 Apache 服务。

    若您希望其他域名访问您的网站时直接返回 403 错误:

      1. 修改第二步中的代码为以下形式:

        1. <VirtualHost *:80>
        2. DucumentRoot /var/www/html/error/
        3. ServerName *
        4. <Location>
        5. Order Allow, Deny
        6. Deny from all
        7. </Location>
        8. ErrorLog logs/dummy-host.example.com-error_log
        9. CustomLog logs/dummy-host.example.com-access_log commom
        10. </VirtualHost>
      2. 执行命令 /etc/httpd/bin/apachectl restart 重启 Apache 服务。

  • 相关阅读:
    spring配合junit测试 initializationError 错误
    hashmap为什么不安全
    关于使用iframe标签自适应高度的使用
    关于highcharts(功能强大、开源、美观、图表丰富、兼容绝大多数浏览器的纯js图表库)
    富文本web编辑器(UEditor)
    css行级块级区别总结摘录
    jquery mobile 主题
    jquery mobile selectmenu下拉菜单
    jquery mobile popup 弹出窗口
    jquery mobile navbar
  • 原文地址:https://www.cnblogs.com/behindman/p/8577701.html
Copyright © 2011-2022 走看看