服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - nginx配置虚拟主机的详细步骤

nginx配置虚拟主机的详细步骤

2021-08-17 17:14途径日暮不赏丶 Nginx

虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。本文通过三种方法给大家介绍配置虚拟主机的方法,感兴趣的朋友跟随小编一起看看吧

虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。

nginx配置虚拟主机的详细步骤

利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器、同一组Nginx进程上运行多个网站的功能。

配置虚拟主机有三种方法:

  • 基于域名的虚拟主机 : 不同的域名、相同的IP(此方式应用最广泛)
  • 基于端口的虚拟主机 : 不使用域名、IP来区分不同站点的内容,而是用不同的TCP端口号
  • 基于IP地址的虚拟主机 : 不同的域名、不同的IP ( 需要加网络接口 ,应用的不广泛) 基于IP地址

nginx配置虚拟主机的详细步骤

方式一:多网卡多IP

两个物理网卡,两个IP

  1. # 两张物理网卡ens32和ens34
  2. [root@nginx network-scripts]# ifconfig ens32 | awk 'NR==2 {print $2}'
  3. 192.168.126.41
  4.  
  5. [root@nginx network-scripts]# ifconfig ens34 | awk 'NR==2 {print $2}'
  6. 192.168.126.42

编辑配置文件,基于每个IP创建一个虚拟主机

  1. # 为防止 /etc/nginx/conf.d/default.conf 配置文件影响,对其进行重命名
  2. [root@nginx ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default
  3.  
  4. [root@nginx ~]# vim /etc/nginx/conf.d/ip.conf
  5. # ens32网卡对应的虚拟主机
  6. server {
  7. listen 192.168.126.41:80;
  8.  
  9. location / {
  10. root /ip_ens32;
  11. index index.html;
  12. }
  13. }
  14.  
  15. # ens34 网卡对应的虚拟主机
  16. server {
  17. listen 192.168.126.42:80;
  18.  
  19. location / {
  20. root /ip_ens34;
  21. index index.html;
  22. }
  23. }

创建虚拟主机的网页文件目录及文件

  1. [root@nginx ~]# mkdir /ip_ens32
  2. [root@nginx ~]# mkdir /ip_ens34
  3.  
  4. [root@nginx ~]# echo "ens32" > /ip_ens32/index.html
  5. [root@nginx ~]# echo "ens34" > /ip_ens34/index.html

检查配置文件的语法

  1. [root@nginx ~]# nginx -t
  2. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  3. nginx: configuration file /etc/nginx/nginx.conf test is successful

重载nginx服务

  1. [root@nginx ~]# systemctl reload nginx

测试

  1. [root@nginx ~]# curl 192.168.126.41
  2. ens32
  3. [root@nginx ~]# curl 192.168.126.42
  4. ens34

nginx配置虚拟主机的详细步骤nginx配置虚拟主机的详细步骤

方式二:单网卡多IP

为一个物理网卡配置多个ip

  1. ip addr add IP/MASK dev 网卡名
  2.  
  3. # 删除
  4. ip addr del IP/MASK dev 网卡名

其余步骤同上面多网卡多IP的配置

基于端口

nginx配置虚拟主机的详细步骤

多使用于公司内部,无法使用域名或没有域名时

配置

  1. [root@nginx ~]# vim /etc/nginx/conf.d/port.conf
  2. server {
  3. listen 81;
  4.  
  5. location / {
  6. root /port_81;
  7. index index.html;
  8. }
  9. }
  10.  
  11. server {
  12. listen 82;
  13.  
  14. location / {
  15. root /port_82;
  16. index index.html;
  17. }
  18. }
  19.  
  20. [root@nginx ~]# mkdir /port_{81..82}
  21. [root@nginx ~]# echo "81" > /port_81/index.html
  22. [root@nginx ~]# echo "82" > /port_82/index.html
  23.  
  24. [root@nginx ~]# nginx -t
  25. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  26. nginx: configuration file /etc/nginx/nginx.conf test is successful
  27. [root@nginx ~]# systemctl reload nginx

测试

  1. [root@nginx ~]# curl 192.168.126.41:81
  2. 81
  3. [root@nginx ~]# curl 192.168.126.41:82
  4. 82

nginx配置虚拟主机的详细步骤nginx配置虚拟主机的详细步骤

基于域名

nginx配置虚拟主机的详细步骤

配置

一般一个域名对应一个配置文件,便于管理

  1. [root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.conf
  2. server {
  3. listen 80;
  4. server_name test1.dxk.com;
  5.  
  6. location / {
  7. root /test1;
  8. index index.html;
  9. }
  10. }
  11.  
  12. [root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.conf
  13. server {
  14. listen 80;
  15. server_name test2.dxk.com;
  16.  
  17. location / {
  18. root /test2;
  19. index index.html;
  20. }
  21. }
  22.  
  23. [root@nginx ~]# mkdir /test{1..2}
  24. [root@nginx ~]# echo "test1" > /test1/index.html
  25. [root@nginx ~]# echo "test2" > /test2/index.html
  26.  
  27. [root@nginx ~]# nginx -t
  28. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  29. nginx: configuration file /etc/nginx/nginx.conf test is successful
  30.  
  31. [root@nginx ~]# systemctl reload nginx

测试

  1. # 配置域名解析
  2. [root@nginx ~]# echo -e "192.168.126.41 test1.dxk.com\n192.168.126.41 test2.dxk.com" >> /etc/hosts
  3. [root@nginx ~]# cat /etc/hosts
  4. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  5. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  6. 192.168.126.41 test1.dxk.com
  7. 192.168.126.41 test2.dxk.com
  8.  
  9. [root@nginx ~]# curl test1.dxk.com
  10. test1
  11. [root@nginx ~]# curl test2.dxk.com
  12. test2

nginx配置虚拟主机的详细步骤
nginx配置虚拟主机的详细步骤
nginx配置虚拟主机的详细步骤

这里有个问题:

如果在配置域名解析时由于写错了,那么访问该错误域名(未配置该错误域名的虚拟主机)时竟然还会返回网页内容。

  1. [root@nginx ~]# vim /etc/hosts
  2. 192.168.126.41 test1.dxk.com
  3. 192.168.126.41 test3.dxk.com # 这里本应该是 test2.dxk.com ,但是由于写错了,而且对应test3.dxk.com域名的虚拟主机并不存在

访问该错误域名

  1. [root@nginx ~]# curl test3.dxk.com
  2. test1
  3.  
  4. # 可以看到,还是会返回网页信息

因为在配置域名解析时,虽然域名写错了,但是IP是对的,那么此时服务端默认会返回满足是该IP且端口为80的排在第一个的虚拟主机的网页信息给客户端

  1. [root@nginx ~]# ll /etc/nginx/conf.d/
  2. -rw-r--r--. 1 root root 112 Jul 3 21:23 test1.dxk.com.conf
  3. -rw-r--r--. 1 root root 112 Jul 3 21:22 test2.dxk.com.conf

这是需要注意的

到此这篇关于nginx虚拟主机的文章就介绍到这了,更多相关nginx虚拟主机内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_45880055/article/details/118442616

延伸 · 阅读

精彩推荐
  • NginxNginx location 和 proxy_pass路径配置问题小结

    Nginx location 和 proxy_pass路径配置问题小结

    本文是基于 location 的匹配末尾是否配置 / 和 proxy_pass 末尾是否配置 / ,进行测试,完全还原了整个测试过程,本文给大家介绍Nginx location 基本配置及相关配...

    自由早晚乱余生18742021-09-24
  • Nginxnginx ssl免密码重启教程详解

    nginx ssl免密码重启教程详解

    这篇文章给大家介绍了nginx 如何启动以及nginx ssl 免密码重启 的方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧 ...

    mrr4272019-11-19
  • NginxNginx动静分离实现案例代码解析

    Nginx动静分离实现案例代码解析

    这篇文章主要介绍了Nginx动静分离实现案例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    盗哥泡茶去了3382020-09-27
  • Nginx如何优化Nginx的处理性能

    如何优化Nginx的处理性能

    Nginx是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx是Apache服务不错的替代品。其特点是占有内存少,...

    Dockone.io5142020-12-11
  • Nginx通过Nginx规则重写URL去掉index.php不显示index.php

    通过Nginx规则重写URL去掉index.php不显示index.php

    Nginx不仅占用内存少,并发能力强,而且拓展功能丰富,可以通过安装模板来强化功能,也能通过规则优化,优化服务器并发处理能力,是建站的不二之选...

    Genius日记5872020-10-16
  • NginxNginx Rewrite使用场景及代码案例详解

    Nginx Rewrite使用场景及代码案例详解

    这篇文章主要介绍了Nginx Rewrite使用场景及代码案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    盗哥泡茶去了11862020-09-27
  • Nginx利用nginx和腾讯云免费证书制作https的方法

    利用nginx和腾讯云免费证书制作https的方法

    这篇文章主要介绍了利用nginx和腾讯云免费证书制作https的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    dalaoyang5992019-12-30
  • Nginxnginx rewrite 伪静态配置参数和使用例子

    nginx rewrite 伪静态配置参数和使用例子

    nginx下伪静态配置参数详细说明,使用nginx的朋友,nginx rewrite 伪静态配置参数和使用例子 附正则使用说明 ...

    服务器之家3102019-10-08