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 配置文件。

    将上述内容修改为:

    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,网站目录结构如下:

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

    实现效果

    • 使用 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 服务。

使用 Web 服务 为 ECS Linux 实例配置网站及绑定域名的更多相关文章

  1. 阿里云服务器 ECS Linux SWAP 配置概要说明

    SWAP 简介 Linux 中的 SWAP(交换分区),类似于 Windows 的虚拟内存.系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存. 注:参阅 E ...

  2. Linux 服务器如何配置网站以及绑定域名

    因为域名没有备案,国内地区不能直接域名访问.前段时间在阿里云租购了一台的香港服务器,添加子域名时解析的时发现不能添加直接解析至端口,找了些资料,发现了Nginx绑定域名的方法,在这里做个记录. 1.香 ...

  3. Linux防火墙配置—访问外网WEB

    一.实验目标 1.本次实验在"Linux基础网络搭建实验"的基础上,在外网虚拟机上搭建WEB服务,并分别配置外网和网关的防火墙规则,使内网能够访问WEB服务 2.Linux基础网络 ...

  4. Nginx配置web服务

    Nginx配置虚拟主机 虚拟主机概述 所谓虚拟主机,在web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可以是IP或者端口),具有独立的程序及资源目录,可以独立的对外提供服务,继而给用户访 ...

  5. linux系统下开启一个简单的web服务

    linux 下开启一个简单的web服务: 首先需要linux下安装nodejs 然后创建一个test.js:   vi test.js var http =require("http&quo ...

  6. nginx下配置多个web服务

    参考 nginx配置详解  nginx反向代理与负载均衡详解 一.nginx简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能 ...

  7. Linux 实例常用内核网络参数介绍与常见问题处理

    本文总结了常见的 Linux 内核参数及相关问题.修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数. 了解参数的具体作用,且注意同类型或版本环境的内核参数可能有所 ...

  8. Asp.net web服务处理程序(第六篇)

    四.Web服务处理程序 对于Web服务来说,标准的方式是使用SOAP协议,在SOAP中,请求和回应的数据通过XML格式进行描述.在Asp.net 4.0下,对于Web服务来说,还可以选择支持Ajax访 ...

  9. idea/eclipse下Maven工程集成web服务(tomcat、jetty)

     idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...

随机推荐

  1. 在IDEA中实战Git 实用

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...

  2. zookeeper图形工具——zkui

    虽然zookeeper安装包提供了客户端工具zkcli,但是命令特别少 ,每次想看看里面的节点信息特别费劲. 幸好有图形工具——zkui,https://github.com/echoma/zkui, ...

  3. 【AtCoder】AGC022 F - Leftmost Ball 计数DP

    [题目]F - Leftmost Ball [题意]给定n种颜色的球各k个,每次以任意顺序排列所有球并将每种颜色最左端的球染成颜色0,求有多少种不同的颜色排列.n,k<=2000. [算法]计数 ...

  4. JS比较两个数字大小

    js不能直降比较两·个数大小,要先转化为整数再比较大小. parseInt()转化. 出处:http://www.jb51.net/article/98251.htm

  5. python实现梯度下降法

    # coding:utf-8 import numpy as np import matplotlib.pyplot as plt x = np.arange(-5/2,5/2,0.01) y = - ...

  6. 添加 MySql 服务、Tomcat服务到windows服务中

    添加 MySql 服务到windows服务中: cmd --> F:\MySql\MySqlServer5.1\bin\mysqld --install 这样用默认的 MySQL 为名称添加一个 ...

  7. 差分约束系统+输出路径(I - Advertisement POJ - 1752 )

    题目链接:https://cn.vjudge.net/contest/276233#problem/I 题目大意:输入k和n,然后输入n行,每一次输入两个数,代表开端和结尾,如果这个区间内点的个数大于 ...

  8. Go语言fmt库的print函数源码解析

    // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a B ...

  9. spring-boot-CommandLineRunner

    在项目服务启动完成后就去加载一些数据 @Component public class MyStartupRunner1 implements CommandLineRunner { @Override ...

  10. 理解mipi协议【转】

    转自:http://blog.csdn.net/wanglining1987/article/details/50202615 完成mipi信号通道分配后,需要生成与物理层对接的时序.同步信号: MI ...