首先,启动nginx很简单

用/usr/local/nginx/sbin/nginx启动脚本直接启动就行了

[root@localhost nginx-1.5.4]# netstat -nutpl | grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18276/nginx

已经可以看到nginx在监听80端口了

[root@localhost nginx-1.5.4]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 80 -j ACCEPT

[root@localhost nginx-1.5.4]# iptables -nL

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited


Chain FORWARD (policy ACCEPT)

target prot opt source destination

REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited


Chain OUTPUT (policy ACCEPT)

target prot opt source destination


添加了防火墙规则之后,可以在浏览器看到nginx的默认首页了

nginx虚拟主机的配置_nginx先说一下基于ip的虚拟主机

[root@localhost ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 08:00:27:0F:5E:D0

inet addr:110.65.96.136 Bcast:110.65.99.255 Mask:255.255.252.0

inet6 addr: 2001:da8:2006:a438:a00:27ff:fe0f:5ed0/64 Scope:Global

inet6 addr: fe80::a00:27ff:fe0f:5ed0/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:858586 errors:0 dropped:0 overruns:0 frame:0

TX packets:35928 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:117905961 (112.4 MiB) TX bytes:5571268 (5.3 MiB)

目前主机的网络配置

[root@localhost ~]# ifconfig eth0:1 110.65.96.137 broadcast 110.65.96.255 netmask 255.255.255.0 up

[root@localhost ~]# route add -host 110.65.96.137 dev eth0:1

[root@localhost ~]# ifconfig eth0:2 110.65.96.138 broadcast 110.65.96.255 netmask 255.255.255.0 up

[root@localhost ~]# route add -host 110.65.96.138 dev eth0:2

这两条命令添加将两个ip绑定到网卡上

再用ifconfig查看时已经可以看到有两个ip了

eth0:1 Link encap:Ethernet HWaddr 08:00:27:0F:5E:D0

inet addr:110.65.96.137 Bcast:110.65.96.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1


eth0:2 Link encap:Ethernet HWaddr 08:00:27:0F:5E:D0

inet addr:110.65.96.138 Bcast:110.65.96.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

但是这样的配置在重启之后会失效

所以要把配置写入/etc/rc.local(系统启动会自动加载执行这个脚本)

nginx虚拟主机的配置_nginx_02

然后修改主配置文件,添加一下几行

nginx虚拟主机的配置_nginx_03

然后重启nginx

nginx虚拟主机的配置_nginx_04

nginx虚拟主机的配置_nginx_05

随便做个测试页

nginx虚拟主机的配置_nginx_06

nginx虚拟主机的配置_nginx_07

可以看到,不同的ip可以访问不同的主页,即不同的虚拟主机


下面是基于域名的虚拟主机

修改nginx的主配置文件

nginx虚拟主机的配置_nginx_08

添加以上这些内容

重新读取配置文件

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

要测试的话,要配置好dns服务

yum install bind bind-chroot bind-utils bind-libs

启动服务

[root@localhost ~]# service named start

第一次启动会慢一点

nginx虚拟主机的配置_nginx_09

可以看到dns监听的端口,设置iptables的策略

[root@localhost ~]# iptables -I INPUT 4 -m state --state NEW -p tcp --dport 53 -j ACCEPT

[root@localhost ~]# iptables -I INPUT 4 -m state --state NEW -p udp --dport 53 -j ACCEPT

修改主配置文件

nginx虚拟主机的配置_nginx_10

nginx虚拟主机的配置_nginx_11

同时在/var/named/下创建一个server.com.zone

nginx虚拟主机的配置_nginx_12

服务重启

然后把自己电脑的dns指向你的实验机器

nginx虚拟主机的配置_nginx_13

nginx虚拟主机的配置_nginx_14

可以看到实验结果

这个就是基于域名的虚拟主机