Nginx部署虚拟主机(不同域名、不同端口、不同IP地址)

介绍

Nginx是一款轻量级的HTTP服务器软件,由俄罗斯的Igor Sysoev开发。它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且系统资源消耗非常低,现已逐渐被越来越多的用户认可,目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

系统环境:

  • rhel 6.5 操作系统
  • 服务器IP地址:192.168.100.5
  • 客户机IP地址:192.168.100.30(与服务器同网段并能够互联互通)
  • Nginx-1.6.0.tar.gz 百度下载 密码:gz86
  • rhel6.5的镜像光盘挂载至/mnt/cdrom/

实现目标:

  1. 安装Nginx服务器
  2. 基于不同域名
  3. 基于不同端口
  4. 基于不同IP地址

开始部署

一. 安装Nginx服务器

1.安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

2.新建nginx管理用户

useradd -M -s /sbin/nologin nginx

3.解压

tar xzvf nginx-1.6.0.tar.gz -C /opt

4.配置

cd /opt/nginx-1.6.0/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module #开启stub_status状态统计模块

5.编译及安装

make && make install

6.建立nginx链接,便于系统管理

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

########### nginx管理命令 ###########

nginx -t #nginx配置文件检查
nginx #启动
killall -1 nginx #重启nginx
killall -3 nginx #停止nginx

######################################

7.生成nginx管理脚本

vi /etc/init.d/nginx

#!/bin/bash
#chkconfig: - 99 20
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0

8.nginx赋予执行权限

chmod +x /etc/init.d/nginx

9.nginx加入系统服务管理

chkconfig --add nginx

10.启动nginx

service nginx start

11.测试


二. 基于不同域名

1. 安装bind软件包

rpm -ivh /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

2. 修改主配置文件

vim /etc/named.conf

3. 修改区域配置文件

vim /etc/named.rfc1912.zones

zone "aa.com" IN {
type master;
file "aa.com.zone";
allow-update { none; };
};
zone "bb.com" IN {
type master;
file "bb.com.zone";
allow-update { none; };

4. 编辑数据配置文件,从/var/named目录中复制一份正向解析模板文件(named.localhost),在复制时加上-p参数,保留原始文件的权限等信息

[[email protected] named]# cd /var/named
[[email protected] named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[[email protected] named]# cp -p named.localhost aa.com.zone

5. 把域名和IP地址的对应数据填写数据配置文件中并保存

vim aa.com.zone

$TTL 1D //生存周期为1天
@ IN SOA @ admin. (
0 ; serial //更新序列号
1D ; refresh //更新时间
1H ; retry //重试延时
1W ; expire //失效时间
3H ) ; minimum //无效解析记录的缓存时间
NS @ // 域名服务器记录
A 192.168.100.5 // 地址记录
www IN A 192.168.100.5

#因为两个域名都是解析到同一个IP地址,所以配置同aa.com,直接复制
[[email protected] named]# cp -p aa.com.zone bb.com.zone

6. 开启named服务并重启使其生效

chkconfig named on
service named restart

7. 检验解析结果

注意:需要先将网卡中的DNS地址参数修改为本机IP地址(192.168.100.5),这样子才可以正常使用本机提供的DNS服务。
这里我们通过nslookup命令检查能否从DNS服务器中查询到域名与IP地址的解析记录,进而确定检测DNS服务器是否已经正常为用户提供服务。


8. 创建两个网站站点的目录及测试首页文件

[[email protected] html]# mkdir /var/www/html/aa.com
[[email protected] html]# mkdir /var/www/html/bb.com
[[email protected] html]# echo "<h1> Hi,www.aa.com</h1>" > /var/www/html/aa.com/index.html
[[email protected] html]# echo "<h1> Hi,www.bb.com</h1>" > /var/www/html/bb.com/index.html

9. 修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

server {
listen 80;
server_name www.aa.com;
location / {
root /var/www/html/aa.com;
index index.html index.php;
}
}
server {
listen 80;
server_name www.bb.com;
location / {
root /var/www/html/bb.com;
index index.html index.php;
}
}

10. 重启nginx服务

service nginx restart

11. 测试

三. 基于不同端口

1. 修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

server {
listen 6666;
server_name www.aa.com;
location / {
root /var/www/html/aa.com;
index index.html index.php;
}
}
server {
listen 8888;
server_name www.bb.com;
location / {
root /var/www/html/bb.com;
index index.html index.php;
}
}

2. 重启nginx服务

service nginx restart

3. 测试

四. 基于不同IP地址

1. 这里使用虚拟IP方式获得多个IP地址

ifconfig eth0:0 192.168.100.6 netmask 255.255.255.0 up

[[email protected] ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:8a:85:fc brd ff:ff:ff:ff:ff:ff
inet 192.168.100.5/24 brd 192.168.100.255 scope global eth0
inet 192.168.100.6/24 brd 192.168.100.255 scope global secondary eth0:1
inet6 fe80::20c:29ff:fe8a:85fc/64 scope link
valid_lft forever preferred_lft forever
[[email protected] ~]#

2. 修改nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf

server {
listen 192.168.100.5:80;
server_name www.aa.com;
location / {
root /var/www/html/aa.com;
index index.html index.php;
}
}
server {
listen 192.168.100.6:80;
server_name www.bb.com;
location / {
root /var/www/html/bb.com;
index index.html index.php;
}
}

3. 重启nginx服务

service nginx restart

4. 测试

原文地址:http://blog.51cto.com/10316297/2131202

时间: 2024-11-13 10:36:26

Nginx部署虚拟主机(不同域名、不同端口、不同IP地址)的相关文章

nginx篇最初级用法之三种虚拟主机基于域名\基于端口\基于IP地址端口的虚拟主机

在nginx中虚拟主机的类型与apache一样也有三种 1.基于域名的虚拟主机 2.基于端口的虚拟主机 3.基于IP地址端口的虚拟主机 在nginx配置文件中每一个server为一个虚拟主机如果需要多个虚拟主机只需要添加server即可例如 server{ listen 80; server_name www.lqinghua.com   //基于域名的虚拟主机 location / { root def; index index.html; } } server{ listen 8080;  

Nginx虚拟主机 (基于域名 基于端口 基于ip)

Nginx虚拟主机 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 一,安装DNS域名解析服务器 1,安装bind服务器 [[email protected] ~]# yum install bind -y 2,修改主配置文件(named.conf) [[email protected] ~]# vim /etc/named.conf options { listen-on port 53 { any; }; ##监听所有 listen-on-v6 port 53 { ::1;

Nginx虚拟主机之域名,端口,IP

要nginx源码包请私信我 Nginx虚拟主机之域名 [[email protected] ~]# yum install bind -y 配置DNS主配置文件 [[email protected] ~]# vim /etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/d

搭建nginx虚拟主机——基于域名、端口和IP

Nginx支持的虚拟主机有三种 1.基于域名的虚拟主机2.基于IP的虚拟主机3.基于端口的虚拟主机且每一种虚拟主机均可通过"server{}" 配置段实现各自的功能 一.基于域名搭建 1.编译安装Nginx服务2.远程获取Windows上的源码包,并挂载到Linux上 [[email protected] ~]# smbclient -L //192.168.235.1 Enter SAMBA\root's password: Sharename Type Comment ------

企业常用Centos 7.4 --虚拟主机基于域名,端口,IP,Apache访问控制

构建虚拟主机 一共支持三种虚拟主机类型企业常用的是第一种基于域名的虚拟主机基于IP地址的虚拟主机,一台物理主机上需要两个网卡基于端口的虚拟主机 构建虚拟主机之基于域名 环境需求:一台linux作为DNS和web服务器,一台WIN10客户端作为测试 在我们的Linux先装两个 软件包 [[email protected] ~]# yum install bind httpd -y 已安装: bind.x86_64 32:9.11.4-9.P2.el7 httpd.x86_64 0:2.4.6-90

构建虚拟主机——基于域名,端口,IP

虚拟web主机 在同一台物理服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机 httpd支持的虚拟主机类型 * 基于域名的虚拟主机 * 基于IP地址的虚拟主机 * 基于端口的虚拟主机 案例一--基于域名 构建2个虚拟web站点 www.accp.com ip地址为本机地址 www.kgc.com ip地址为本机地址 在浏览器中访问这两个域名时,分别显示不同的内容 实验环境 一台Linux主机做服务器一台win7主机做测试 1,安装http和dns服务 [[email pro

CentOS7构建虚拟Web主机(基于域名、端口、IP地址)

虚拟Web主机 在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机. httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 构建虚拟主机------基于域名 (1)安装bind.httpd服务. (2)进入named服务的主配置文件,将下图两个位置改为"any". [[email protected] ~]# vim /etc/named.conf (3)进入named服务的区域配置文件,添加两个域名的区域信息.

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

Nginx的虚拟主机配置

为了使每个服务器可以提供更多用户使用,可以将一个服务器通过虚拟化技术分为很多的子服务器,每个子服务器都是互相独立的.我们把子服务器叫做虚拟主机.我们搭建好nginx服务器之后,就可以将一台ngixn服务器分割为多台独立的子服务器.nginx中配置虚拟主机有连个步骤: 1.配置ip地址 2.绑定ip地址与虚拟主机 一.配置ip地址 配置ip地址: ifconfig eth0 192.168.1.102 netmask 255.255.255.0 配置分设备1: ifconfig eth0:1 19