Nginx虚拟主机配置server

什么是虚拟主机?
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供web服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。
Nginx虚拟主机配置server_第1张图片
nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置。
1、基于域名的虚拟主机 (server_name来区分虚拟主机——应用:web网站)
2、基于ip的虚拟主机, (一个主机绑定多个ip地址)
3、基于端口的虚拟主机 (端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台)

1、基于域名的虚拟主机

1、配置通过域名区分的虚拟机
[root@localhost ~]# cat /etc/nginx/nginx.conf
user nginx;
worker_processes 4;

#error_log logs/error.log;
worker_rlimit_nofile 102400;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

server {
    listen       80;
    server_name  web.testpm.com;
    location / {
        root   /var/www/nginx/;
        index  index.html index.htm;
        limit_rate	2k;
    	}
    }

server {
    listen       80;
    server_name  web.1000phone.com;
    location / {
        root   /1000phone/html;
        index  index.html index.htm;
    	}
    }

}

[root@localhost nginx]# cat /var/www/nginx/index.html
hello tianyun

[root@localhost nginx]# cat /1000phone/html/index.html
Hanyu Yuzuru
2、 为域名为 web.1000phone.com 的虚拟机,创建 index 文件
[root@localhost ~]# mkdir -p /1000phone/html
[root@localhost ~]# vim /1000phone/html/index.html
Hanyu Yuzuru
3、重新加载配置文件
#如果编译安装的执行
[root@nginx]# /usr/local/nginx/sbin/nginx -s reload
#如果 yum 安装的执行
[root@nginx]# nginx -s reload
4、客户端配置解析
在 C:\Windows\System32\drivers\etc\hosts 文件中添加两行(linux:/etc/hosts)
192.168.229.130 web.testpm.com
192.168.229.140 web.1000phone.com
5、 测试访问
浏览器输入:http://web.testpm.com/
浏览器输入:http://web.1000phone.com/

2、基于ip的虚拟主机

[root@localhost ~]# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:17:f1:af brd ff:ff:ff:ff:ff:ff
inet 10.0.105.199/24 brd 10.0.105.255 scope global dynamic ens33
valid_lft 81438sec preferred_lft 81438sec
inet6 fe80::9d26:f3f0:db9c:c9be/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ifconfig ens33:1 192.168.229.139
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 10.0.105.199 netmask 255.255.255.0 broadcast 10.0.105.255
inet6 fe80::9d26:f3f0:db9c:c9be prefixlen 64 scopeid 0x20
ether 00:0c:29:17:f1:af txqueuelen 1000 (Ethernet)
RX packets 9844 bytes 1052722 (1.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5567 bytes 886269 (865.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33:1: flags=4163 mtu 1500
inet 192.168.229.140 netmask 255.255.255.0 broadcast 10.0.105.255
ether 00:0c:29:17:f1:af txqueuelen 1000 (Ethernet)

2、配置通过ip区分的虚拟机
[root@localhost ~]# cat /etc/nginx/nginx.conf
user root;
worker_processes 4;

#error_log logs/error.log;
worker_rlimit_nofile 102400;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

server {
    listen       80;
    server_name  192.168.229.139;
    location / {
        root   /var/www/nginx/;
        index  index.html index.htm;
        limit_rate	2k;
    }
    
 server {
    listen       80;
    server_name  192.168.229.140;
    location / {
        root   /1000phone/html/;
        index  index.html index.htm;
    	}
    }

}
3、重新加载配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
4、 测试访问
浏览器输入:http://192.168.229.139
浏览器输入:http://192.168.229.140
5、补充
– 删除绑定的临时ip
[root@localhost ~]# ifconfig ens33:1 192.168.229.140/24 down
重启一下nginx
[root@localhost ~]# systemctl restart nginx

3、 基于端口的虚拟主机

[root@localhost ~]# cat /etc/nginx/nginx.conf
user root;
worker_processes 4;

worker_rlimit_nofile 102400;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';


sendfile        on;

keepalive_timeout  65;


server {
    listen       80;
    server_name  web.testpm.com;
    location / {
        root   /var/www/nginx/;
        index  index.html index.htm;
        limit_rate	2k;
    }
    

 server {
    listen       8080;
    server_name  web.testpm.com;
    location / {
        root   /1000phone/html/;
        index  index.html index.htm;
    	}
    }

}
重新加载配置文件:
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
测试访问:
浏览器输入:http://web.testpm.com/
浏览器输入:http://web.1000phone.com:8080
autoindex on;

你可能感兴趣的:(nginx,centos)