介绍

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参数,保留原始文件的权限等信息

[root@localhost named]# cd /var/named
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost 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,直接复制
[root@localhost 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. 创建两个网站站点的目录及测试首页文件

[root@Server html]# mkdir /var/www/html/aa.com
[root@Server html]# mkdir /var/www/html/bb.com
[root@Server html]# echo " Hi,www.aa.com" > /var/www/html/aa.com/index.html
[root@Server html]# echo " Hi,www.bb.com" > /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

[root@Server ~]# 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 [root@Server ~]#

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. 测试