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

赞赏 2016-07-14

以下列举一些 Linux 服务器上常见的 Web 程序的域名绑定和站点配置。包括:
Nginx 服务绑定域名的方法
Tomcat 服务绑定域名的方法
Apache 服务绑定域名的方法
Apache 服务配置实现多域名跳转
Apache 服务配置二级域名
Apache 禁止未经许可的域名访问 服务器上的网站


Nginx 服务绑定域名的方法

以 YUM 安装的 Nginx 为例,域名绑定需要编辑 Nginx 的配置文件完成,Nginx 配置文件是 /etc/nginx/nginx.conf,将默认的server {...}
配置修改成如下:


修改后的意思是:

1、访问 www.123.com,会跳转到 /home/web1 目录;

2、访问 www.abc.com,会跳转到 /home/web2 目录。

修改之后重启 Nginx 服务即可。


Tomcat 服务绑定域名的方法

域名绑定需要编辑 Tomcat 的配置文件完成,Tomcat 配置文件是 $TOMCAT_HOME/conf/server.xml,$TOMCAT_HOME 是 Tomcat 的安装目录。

将上述内容修改为:


修改后的意思是:

1、访问 www.abc.com,会默认跳转到 /data/wwwroot/default 目录;

2、访问服务器的 IP 地址 120.76.210.250,会默认跳转到 /data/wwwroot/web 目录;

修改之后重启 Tomcat 服务器,即可生效。


Apache 服务绑定域名的方法

例如使用一键安装包配置的 Apache 环境,添加网站配置方法如下:

1、进入站点配置文件目录,命令如下:

cd /alidata/server/httpd/conf/vhosts/

2、创建一个新的配置文件,命令如下:

vi aa.conf

3、按键盘上的字母 “i”,开始编辑文件,将下面的内容复制过去。 

Order allow,deny
Deny from all
DocumentRoot /alidata/www/test
ServerName www.test.com
ServerAlias test.com
ErrorLog "/alidata/log/httpd/test-error.log"
CustomLog "/alidata/log/httpd/test.log"

注意:对应的日志名字也需要自己修改一下,可以区分网站的日志信息。

4、重启 Apache 测试,命令如下:

/alidata/server/httpd/bin/apachectl restart 

 


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

例如程序的目录为 /var/www/html。

网站目录结构:

Apache 核心配置内容:

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


实现效果:

使用 a.example.com 访问时,是访问到 /var/www/html/a 目录;

使用 b.example.com 访问时,是访问到 /var/www/html/b 目录;

使用 c.example.com 访问时,是访问到 /var/www/html/c 目录。



Apache 服务配置二级域名

1、拥有一个有泛域名解析的顶级域名,例如: aliyun.com;

2、在 httpd.conf 中打开 mod_rewrite 模块;

3、在 httpd.conf 的最后,添加以下内容:

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

注意:其中的 /usr/local/etc/apache 是您的 Apache 服务器配置文件所在路径,根据实际情况更改。

4、在这个所在路径的目录下创建一个文件: vhost.map。

www.aliyun.com /usr/local/www/data-dist/aliyun
bbs.aliyun.com /usr/local/www/data-dist/aliyun
bbsanyname.aliyun.com /usr/local/www/data-dist/anyname

注意:以上部分都是:” 域名+空格+绝对路径”的形式。

5、在您的网站根目录 /usr/local/www/data-dist 下,创建对应目录:aliyun , bbs , anyname 等等,理论上可以无限。

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

同理,访问 bbs.aliyun.com 实际上访问的就是 /usr/local/www/data-dist/aliyunbbs 目录下的文件。

而且,您可以随时更改 vhost.map 来增加、删除、修改您的二级域名和所指向的实际路径,不用重启 Apache。



Apache 禁止未经许可的域名访问 服务器 上的网站

有时 服务器 上的网站会被人恶意指向,譬如说您的 服务器 的 IP 地址为 123.123.123.123,正常服务的域名为 www.abc.com,但是此时有恶意用户使用其他的域名,恶意指向到您的网站;

如恶意用户注册了一个域名 www.fake.com,然后指向到了 IP 123.123.123.123,这样会使访问原本不属于您网站的域名 www.fake.com 也会出现您的网站内容。


解决方案

通过 Apache 的虚拟主机可以变通的解决这个问题。

测试场景:

服务器上有两个网站,分别为 http://t1.huigher.cn/ 和 http://p1.huigher.cn/。

Apache 版本为 2.2.15。

打开 Apache 的配置文件,CentOS 下默认位置在 /etc/httpd/conf/httpd.conf,在其中加入以下内容:

注意:以实际 Apache 配置文件路径为准。

1、 首先是加入以下代码,告知 Apache 使用了基于 host 名的虚拟主机功能:

NameVirtualHost *:80


2、 然后加入以下代码,作用是当客户端携带的 host 头不在之后设置的网站域名内时,指向一个 403 错误页面告知用户域名非法,

其中 DocumentRoot 即是放置错误提示页面的目录,在下面可以放置一个简单的 html 页面提示用户访问的域名非法。 


 3、 最后加入以下代码,告知 Apache 合法的网站主机头,这个代码块根据实际情况修改内容,该实例中加入了两个网站,分别是 p1.huigher.cn 和 t1.huigher.cn。


4、 最后重新启动 Apache 就可以看到效果了。


5、若希望使用其他域名访问时直接返回 403 错误,可以在第二步中将代码改为以下形式:

 

重启 Apache 后再使用其他域名访问就会直接返回 403 错误了。

登陆后阅读全文
阅读 3527 赞赏 0 有用 2 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

别的域名也能访问我的网站是怎么回事?|Linux下nginx如何禁止空主机头?| 网站IP被恶意解析

Nginx启动报错:Error open() nginx.pid?

Linux Web 环境配置站点的方法

nginx 报错: emerg bind to 80 failed 98 address already in use

如何配置,让Apache、Nginx 支持跨域访问?

Linux下如何查看Nginx Apache MySQL PHP 的编译参数?

Apache 如何关闭目录访问?

Linux Apache 运行配置参数的调优

nginx warn upstream response is buffered to a temporary file

Nginx 502 bad gateway如何解决

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章