• 售前

  • 售后

热门帖子
入门百科

nginx设置虚拟主机的详细步调

[复制链接]
我心如烟卸 显示全部楼层 发表于 2021-8-14 14:39:50 |阅读模式 打印 上一主题 下一主题
假造主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“假造”的主机,每台假造主机都可以是一个独立的网站,可以具有独立的域名,具有完备的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的假造主机之间是完全独立的。从网站访问者来看,每一台假造主机和一台独立的主机完全一样。

使用假造主机,不消为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx历程。假造主机提供了在同一台服务器、同一组Nginx历程上运行多个网站的功能。
设置假造主机有三种方法:

       
  • 基于域名的假造主机 : 不同的域名、相同的IP(此方式应用最广泛)   
  • 基于端口的假造主机 : 倒霉用域名、IP来区分不同站点的内容,而是用不同的TCP端口号   
  • 基于IP所在的假造主机 : 不同的域名、不同的IP ( 必要加网络接口 ,应用的不广泛) 基于IP所在

方式一:多网卡多IP

两个物理网卡,两个IP
  1. # 两张物理网卡ens32和ens34
  2. [root@nginx network-scripts]# ifconfig ens32 | awk 'NR==2 {print $2}'  
  3. 192.168.126.41
  4. [root@nginx network-scripts]# ifconfig ens34 | awk 'NR==2 {print $2}'  
  5. 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. [root@nginx ~]# vim /etc/nginx/conf.d/ip.conf
  4. # ens32网卡对应的虚拟主机
  5. server {
  6.   listen 192.168.126.41:80;
  7.   location / {
  8.     root /ip_ens32;
  9.     index index.html;
  10.   }
  11. }
  12. # ens34 网卡对应的虚拟主机
  13. server {
  14.   listen 192.168.126.42:80;
  15.   location / {
  16.     root /ip_ens34;
  17.     index index.html;
  18.   }
  19. }
复制代码
创建假造主机的网页文件目次及文件
  1. [root@nginx ~]# mkdir /ip_ens32
  2. [root@nginx ~]# mkdir /ip_ens34
  3. [root@nginx ~]# echo "ens32" > /ip_ens32/index.html
  4. [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
复制代码

方式二:单网卡多IP

为一个物理网卡设置多个ip
  1. ip addr add IP/MASK dev 网卡名
  2. # 删除
  3. ip addr del IP/MASK dev 网卡名
复制代码
别的步调同上面多网卡多IP的设置
基于端口


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

设置
  1. [root@nginx ~]# vim /etc/nginx/conf.d/port.confserver {  listen 81;  location / {    root /port_81;    index index.html;  }}server {  listen 82;  location / {    root /port_82;    index index.html;  }}[root@nginx ~]# mkdir /port_{81..82}[root@nginx ~]# echo "81" > /port_81/index.html[root@nginx ~]# echo "82" > /port_82/index.html[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[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
复制代码

基于域名


设置

一样寻常一个域名对应一个设置文件,便于管理
  1. [root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.confserver {  listen 80;  server_name test1.dxk.com;  location / {    root /test1;    index index.html;  }}[root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.confserver {  listen 80;  server_name test2.dxk.com;  location / {    root /test2;    index index.html;  }}[root@nginx ~]# mkdir /test{1..2}[root@nginx ~]# echo "test1" > /test1/index.html[root@nginx ~]# echo "test2" > /test2/index.html[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[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. [root@nginx ~]# curl test1.dxk.com
  9. test1
  10. [root@nginx ~]# curl test2.dxk.com
  11. test2
复制代码



这里有个问题:

如果在设置域名剖析时由于写错了,那么访问该错误域名(未设置该错误域名的假造主机)时竟然还会返回网页内容。
  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. # 可以看到,还是会返回网页信息
复制代码
因为在设置域名剖析时,固然域名写错了,但是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假造主机内容请搜索草根技术分享以前的文章或继承浏览下面的相干文章渴望各人以后多多支持草根技术分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作