新闻资讯

新闻资讯 行业动态

nginx虚拟主机配置

编辑:006     时间:2020-03-12

在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理

配置nginx虚拟主机首先肯定要先部署咱们的nginx,具体nginx部署安装请移步 nginx部署,配置nginx虚拟主机需要大家了解nginx配置文件以及nginx的各个目录,若需要请移步 nginx目录结构与配置文件详解

配置nginx虚拟主机有三种方法:基于ip地址的虚拟主机、基于域名的虚拟主机以及基于端口的虚拟主机,下面为大家逐一讲解

基于域名的虚拟主机

基于域名的虚拟主机原理:相同IP地址,相同端口、不同的域名。也就是说多个虚拟主机之间共用一个ip地址以及一个端口(80),区分各个主机之间使用不同的域名,当然访问的时候也就只能使用域名进行访问了,基于域名的虚拟主机是最常用的方式
配置:

			
  1. http{
  2. ......省略其他代码
  3. #第一台虚拟主机
  4. server {
  5. listen 80;
  6. server_name a.jkyst.xyz; #这里域名一定不要重复
  7. access_log logs/a.access.log; #日志需求可以根据自己的要求去做,如果觉得日志无所谓分不分开大可以放到一起
  8. location{
  9. root html/a; #这里是网站的根目录,注意为了测试一定要分开,里面写上不同的html
  10. index index.html index.htm;
  11. }
  12. ......这里省略其他代码
  13. }
  14. #第二台虚拟主机
  15. server{
  16. listen 80;
  17. server_name b.jkyst.xyz;
  18. access_log logs/b.access.log;
  19. location{
  20. root html/b;
  21. index index.html index.htm;
  22. }
  23. ......这里省略其他代码
  24. }
  25. #第三台虚拟主机
  26. server{
  27. listen 80;
  28. server_name c.jkyst.xyz;
  29. access_log logs/c.access.log;
  30. location{
  31. root html/c;
  32. index index.html index.htm;
  33. }
  34. }
  35. }

基于端口的虚拟主机

基于端口的虚拟主机原理:相同IP地址,相同域名,不同的端口;也就是说多个虚拟主机之间拥有相同的IP地址和域名,使用端口不同的方式区分不同虚拟主机,当然访问的时候就不可以使用默认的端口(80)去访问了
配置

			
  1. http{
  2. ......省略其他代码
  3. #第一台虚拟主机
  4. server {
  5. listen 8000;
  6. server_name www.jkyst.xyz;
  7. access_log logs/a.access.log;
  8. location{
  9. root html/a;
  10. index index.html index.htm;
  11. }
  12. ......省略其他代码
  13. }
  14. #第二台虚拟主机
  15. server{
  16. listen 8001;
  17. server_name www.jkyst.xyz;
  18. access_log logs/b.access.log;
  19. location{
  20. root html/b;
  21. index index.html index.htm;
  22. }
  23. ......省略其他代码
  24. }
  25. #第三台虚拟主机
  26. server{
  27. listen 8002;
  28. server_name www.jkyst.xyz;
  29. access_log logs/c.access.log;
  30. location{
  31. root html/c;
  32. index index.html index.htm;
  33. }
  34. ......省略其他代码
  35. }
  36. }

基于IP的虚拟主机

基于IP地址的虚拟主机原理:相同端口,相同域名,不同的IP地址;也就是说多个虚拟主机之间拥有相同的端口和域名,使用IP地址不同的方式区分不同虚拟主机,当然访问的时候就需要使用不同IP或者域名去访问了,绑定域名时也就需要不同域名绑定不同ip地址,但不可一个域名绑定多个ip
配置

			
  1. http{
  2. ......省略其他代码
  3. #第一台虚拟主机
  4. server {
  5. listen IP地址:80;
  6. server_name a.jkyst.xy或者ip地址;
  7. access_log logs/a.access.log;
  8. location{
  9. root html/a;
  10. index index.html index.htm;
  11. }
  12. ......省略其他代码
  13. }
  14. #第二台虚拟主机
  15. server{
  16. listen IP地址:80;
  17. server_name b.jkyst.xyz或者IP地址;
  18. access_log logs/b.access.log;
  19. location{
  20. root html/b;
  21. index index.html index.htm;
  22. }
  23. ......省略其他代码
  24. }
  25. #第三台虚拟主机
  26. server{
  27. listen IP地址:80;
  28. server_name c.jkyst.xyz或者IP地址;
  29. access_log logs/c.access.log;
  30. location{
  31. root html/c;
  32. index index.html index.htm;
  33. }
  34. ......省略其他代码
  35. }
  36. }

实战

我这里为大家演示一种虚拟主机的实现,因为基于域名的虚拟主机比较常见这里就为大家演示这种虚拟主机

环境介绍

操作系统版本:

			
  1. root@jia:~# lsb_release -a
  2. No LSB modules are available.
  3. Distributor ID: Ubuntu
  4. Description: Ubuntu 19.10
  5. Release: 19.10
  6. Codename: eoan
  7. root@jia:~# cat /proc/version
  8. Linux version 5.3.0-18-generic (buildd@lcy01-amd64-027) (gcc version 9.2.1 20190909 (Ubuntu 9.2.1-8ubuntu1)) #19-Ubuntu SMP Tue Oct 8 20:14:06 UTC 2019

nginx版本:

			
  1. root@jia:~# nginx -v
  2. nginx version: nginx/1.16.1 (Ubuntu)

配置nginx.conf

配置文件位置:/etc/nginx/conf.d/*.conf
nginx安装方式不同位置不同,具体请查看自己的配置文件位置
下面是配置文件内容:

			
  1. root@jia:/var/www/html# cat /etc/nginx/conf.d/default.conf
  2. server {
  3. listen 80;
  4. server_name a.jkyst.xyz;
  5. location / {
  6. root /var/www/html/a;
  7. index index.html index.htm;
  8. }
  9. }
  10. server {
  11. listen 80;
  12. server_name b.jkyst.xyz;
  13. location / {
  14. root /var/www/html/b;
  15. index index.html index.htm;
  16. }
  17. }
  18. server {
  19. listen 80;
  20. server_name c.jkyst.xyz;
  21. location / {
  22. root /var/www/html/c;
  23. index index.html index.htm;
  24. }

记住修改配置文件后一定要重新启动nginx

			
  1. root@jia:~# systemctl restart nginx

创建主页文件

首先创建存放主页html文件的目录

			
  1. root@jia:~# cd /var/www/html/
  2. root@jia:/var/www/html# mkdir a b c
  3. #生成主页文件
  4. root@jia:/var/www/html# echo a.jkyst.xyz > a/index.html
  5. root@jia:/var/www/html# echo b.jkyst.xyz > b/index.html
  6. root@jia:/var/www/html# echo c.jkyst.xyz > c/index.html

修改host文件

这里修改hosts文件需要注意一下,在那个PC上面验证就在那个PC上面修改host文件
windows主机hosts文件路径:C:\Windows\System32\drivers\etc
linux版本hosts文件路径:/etc/
需要写入的内容

			
  1. 127.0.0.1 a.jkyst.xyz //127.0.0.1是nginx服务器的IP地址,我这里使用的是同一台PC
  2. 127.0.0.1 b.jkyst.xyz
  3. 127.0.0.1 c.jkyst.xyz

测试

			
  1. root@jia:~# curl a.jkyst.xyz
  2. a.jkyst.xyz
  3. root@jia:~# curl b.jkyst.xyz
  4. b.jkyst.xyz
  5. root@jia:~# curl c.jkyst.xyz
  6. c.jkyst.xyz

OK发现访问的都是我想要得到的域名,证明基于域名的虚拟主机配置成功

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69956585/viewspace-2669597/,如需转载,请注明出处,否则将追究法律责任。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐