Qu'est-ce que l'hébergement Web?
L'hôte virtuel est une technologie logicielle et matérielle spéciale. Il peut diviser chaque ordinateur du réseau en plusieurs hôtes virtuels. Chaque hôte virtuel peut fournir indépendamment des services www au monde extérieur, de sorte qu'un hôte peut fournir plusieurs sites Web en externe. Les services sont indépendants de chaque hôte virtuel et ne s’affectent pas les uns les autres.
Nginx peut implémenter la configuration d'hôte virtuel, nginx prend en charge trois types de configuration d'hôte virtuel.
1. Hôte virtuel basé sur le nom de domaine (nom_serveur pour distinguer l'hôte virtuel-application: site Web externe)
2. Hôte virtuel basé sur l'ip (un hôte est lié à plusieurs adresses IP)
3. Hôte virtuel basé sur le port (port pour distinguer le virtuel Application hôte: site Web interne de l'entreprise, expérience de gestion de site Web externe)
1. Hébergement virtuel basé sur le nom de domaine
1. Configurer les machines virtuelles distinguées par des noms de domaine
[root@localhost ~]# cat /etc/nginx/nginx.conf
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;
}
}
}
2. Créez un fichier d'index pour la machine virtuelle dont le nom de domaine est web.1000phone.com
[root@localhost ~]# mkdir -p /1000phone/html
[root@localhost ~]# vim /1000phone/html/index.html
<html>
<p>
this is my 1000phone
</p>
</html>
3. Rechargez le fichier de configuration
# 如果编译安装的执行
[root@nginx]# /usr/local/nginx/sbin/nginx -s reload
# 如果 yum 安装的执行
[root@nginx]# nginx -s reload
4. Configurez le mappage de route côté client
. Ajoutez deux lignes au fichier C: \ Windows \ System32 \ drivers \ etc \ hosts (linux: / etc / hosts)
10.0.105.199 web.testpm.com
10.0.105.199 web.1000phone.com
5. Visite d'essai
Entrée du navigateur: http://web.testpm.com/
Entrée du navigateur: http://web.1000phone.com/
2. Hôte virtuel basé sur IP
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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 10.0.105.201/24 #要保证添加的IP没有被使用(给网卡再添加一个ip)
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> 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<link>
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<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.105.201 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 10.0.105.199:80;
server_name web.testpm.com;
location / {
root /var/www/nginx/;
index index.html index.htm;
limit_rate 2k;
}
server {
listen 10.0.105.201:80;
server_name web.testpm.com;
location / {
root /1000phone/html/;
index index.html index.htm;
}
}
}
3、重新加载配置文件
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
4、 测试访问
浏览器输入:http://10.0.105.199
浏览器输入:http://10.0.105.201
5、补充
-- 删除绑定的vip
[root@localhost ~]# ifconfig ens33:1 10.0.105.201/24 down
重启一下nginx
[root@localhost ~]# systemctl restart nginx
1. Vérifiez l'IP et trouvez le segment de réseau
2. Ifconfig ens33: 1 192.168.49.148/24 Ajoutez ip à la
carte réseau
3. Ifconfig affiche la carte réseau 4. Modifiez le fichier de configuration /etc/nginx/nginx.conf Entrez deux adresses IP avant le port d'écoute
5. Rechargez le fichier de configuration nginx (redémarrez nginx s'il y a un cache (systemctl restart nginx))
6. Visitez ip curl 192.168.49.144
curl 192.168.49.148 (IP ajoutée)
3. Hôte virtuel basé sur le port
Une IP
[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.1000phone.com;
location / {
root /1000phone/html/;
index index.html index.htm;
}
}
}
Rechargez le fichier de configuration:
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload
Visite test:
entrée navigateur: http://web.testpm.com/
entrée navigateur: http://web.1000phone.com:8080