您的位置:首页 > 运维架构 > Nginx

详解Nginx搭建多网站实现虚拟主机应用

2018-08-18 18:42 746 查看

简介

虚拟主机是指在网络服务器上分出一定的磁盘空间,管理员可以利用此部分空间,放置站点及应用组件,提供必要的数据存放和传输功能。虚拟主机,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。

优点

价格低廉。相对于购买独立服务器,网站建设的费用大大降低,为普及中小型网站提供了极大便利。
提升效率。由于多台虚拟主机共享一台真实主机的资源,大大增加了服务器和带宽的利用率,使得一台服务器上能够毫无冲突地配置多个网络IP地址。

缺点

功能限制。比如可能耗用系统资源的论坛程序、流量统计功能等。
访问速度及流量限制。一台服务器上的不同虚拟主机是各自独立的,并由管理员管理。但一台服务器主机只能够支持一定数量的虚拟主机,当超过这个数量时,服务器性能急剧下降。
自主性差。虚拟主机不能由客户随意的安装软件及远程桌面等操作。

用途

适合作为中小企业的小型门户网站,节省资金资源。
中小企业、专业门户网站可以使用虚拟主机空间提供数据共享、数据下载服务。
可以为中小企业提供数据存储数据功能。由于成本比独立服务器低,安全性高做为小型数据库首选。
虚拟主机空间特有的应用程序模板,使用者可以快速的进行批量部署,是中小型企业运行ASP或PHP应用的首选平台。

实验环境

系统环境:CentOS7.4

服务器IP地址:192.168.100.71

客户端IP地址:192.168.100.72

yum挂载目录:/mnt/sr0

相关源码包下载地址:百度云下载   密码:uhzm

搭建步骤

一、准备工作

1、关闭防火墙及selinux

[root@localhost ~]# systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]# systemctl disable firewalld.service #随开机自动关闭

[root@Init5 ~]# vim /etc/sysconfig/selinux



[root@localhost ~]# reboot #重启Linux生效

二、搭建DNS服务器

1、安装bind软件包

[root@localhost ~]# cd /mnt/sr0/Packages/
[root@localhost Packages]# rpm -ivh bind-9.9.4-50.el7.x86_64.rpm

2、修改主配置文件named.conf

[root@localhost ~]# vim /etc/named.conf



3、创建并修改DNS正向解析文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost bt.com.zone #将模板文件改为正向解析文件进行修改
[root@localhost ~]# vim /var/named/bt.com.zone #修改正向解析文件



[root@localhost named]# cp -p bt.com.zone cloud.com.zone
[root@localhost ~]# vim /var/named/bt.com.zone



4、启动DNS服务器

[root@localhost ~]# systemctl start named.service

5、修改DNS客户机配置文件

[root@localhost ~]# echo "nameserver 192.168.100.71" >> /etc/resolv.conf

6、测试DNS解析

[root@localhost ~]# nslookup www.bt.com #nslookup 用于查询DNS的记录,查看域名解析是否正常
[root@localhost ~]# nslookup www.cloud.com



二、搭建Nginx服务

1、安装相应的工具包以及C语言编译器

[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++

2、创建Nginx进程用户

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

3、配置、编译及编译安装Nginx源码包

[root@localhost ~]# tar xvf nginx-1.12.0.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx

参数解析:

prefix #指定安装位置
user=nginx #指定nginx系统用户
group=nginx #指定组

[root@localhost nginx-1.12.0]# make && make install

4、优化路径

[root@localhost ~]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

三、设置Nginx运行控制

1、检测语法

[root@localhost ~]# nginx -t #测试配置是否有语法错误



2、启动Nginx服务

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf #修改主配置文件



[root@localhost ~]# nginx #启动Nginx
[root@localhost ~]# netstat -anpt | grep ":80" #检测服务是否启动
[root@localhost ~]# cat /usr/local/nginx/logs/nginx.pid #查看pid



3、停止Nginx服务

[root@localhost ~]# kill -1 3809 #平滑重启Nginx服务。相当于killall -s HUP nginx;nginx -s reload
[root@localhost ~]# kill -3 1514 #关闭Nginx服务。相当于killall -s QUIT nginx;nginx -s quit
[root@localhost ~]# nginx #重启服务
[root@localhost ~]# cat /usr/local/nginx/logs/nginx.pid #查看pid号



4、编辑Nginx服务脚本

[root@localhost ~]# vim /lib/systemd/system/nginx.service

[Unit]

Description=Nginx Server Control Script #说明
After=network.target #描述服务类别

[Service]

Type=forking #后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecReload=/usr/bin/kill -s HUP $PIDFile #重载服务
ExecStop=/usr/bin/kill -s QUIT $PIDFile #停止服务

[Install]

WanteBy=multi-user.target

[root@localhost ~]# systemctl daemon-reload #重新加载服务单元
[root@localhost ~]# systemctl enable nginx.service #设置开机自启动

[root@localhost ~]# systemctl stop nginx.service#停止服务
[root@localhost ~]# systemctl start nginx.service#开启服务
[root@localhost ~]# systemctl reload nginx.service#平滑重启服务
[root@localhost ~]# systemctl restart nginx.service#重启服务

四、基于域名的虚拟主机搭建(相同IP,相同端口,不同主机名)

1、创建虚拟Web主机网站目录以及网页

[root@localhost ~]# mkdir -p /var/www/html/{btcom,cloudcom}#创建网站目录

[root@localhost ~]# echo "this is bt.com AAAAAAAAAA" > /var/www/html/btcom/index.html #创建网页
[root@localhost ~]# echo "this is cloud.com BBBBBBBBBB" > /var/www/html/cloudcom/index.html #创建网页

2、修改配置文件,添加虚拟主机配置

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# cp nginx.conf nginx.conf.bak #将源配置文件进行备份
[root@localhost conf]# grep -v "#" nginx.conf.bak > nginx.conf #将注释过滤掉
[root@localhost conf]# vim nginx.conf



3、重启Nginx服务

[root@localhost ~]# systemctl restart nginx.service

4、客户机测试

[root@Init5 ~]# echo "nameserver 192.168.100.71" >> /etc/resolv.conf #修改DNS客户机配置文件



五、基于IP地址的虚拟主机(相同端口,相同主机名,不同IP)

1、服务器端添加一块子网卡

[root@localhost ~]# ifconfig ens33:0 192.168.100.77



2、修改主配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf



3、重启Nginx服务

[root@localhost ~]# systemctl restart nginx.service

4、客户机测试



六、基于端口的虚拟主机(相同端口,相同主机名,不同IP)

1、修改主配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf



2、重启Nginx服务

[root@localhost ~]# systemctl restart nginx.service

3、客户机测试

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Nginx 虚拟主机
相关文章推荐