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

来源:脚本之家  责任编辑:小易  

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

在这里插入图片描述

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

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

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

在这里插入图片描述

方式一:多网卡多IP

两个物理网卡,两个IP

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

[root@nginx network-scripts]# ifconfig ens34 | awk 'NR==2 {print $2}'  
192.168.126.42

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

# 为防止 /etc/nginx/conf.d/default.conf 配置文件影响,对其进行重命名
[root@nginx ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default	 

[root@nginx ~]# vim /etc/nginx/conf.d/ip.conf
# ens32网卡对应的虚拟主机
server {
  listen 192.168.126.41:80;

  location / {
    root /ip_ens32;
    index index.html;
  }
}

# ens34 网卡对应的虚拟主机
server {
  listen 192.168.126.42:80;

  location / {
    root /ip_ens34;
    index index.html;
  }
}

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

[root@nginx ~]# mkdir /ip_ens32
[root@nginx ~]# mkdir /ip_ens34

[root@nginx ~]# echo "ens32" > /ip_ens32/index.html
[root@nginx ~]# echo "ens34" > /ip_ens34/index.html

检查配置文件的语法

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

重载nginx服务

[root@nginx ~]# systemctl reload nginx

测试

[root@nginx ~]# curl 192.168.126.41
ens32
[root@nginx ~]# curl 192.168.126.42
ens34

在这里插入图片描述在这里插入图片描述

方式二:单网卡多IP

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

ip addr add IP/MASK dev 网卡名

# 删除
ip addr del IP/MASK dev 网卡名

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

基于端口

在这里插入图片描述

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

配置

[root@nginx ~]# vim /etc/nginx/conf.d/port.conf
server {
  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
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nginx ~]# systemctl reload nginx

测试

[root@nginx ~]# curl 192.168.126.41:81
81
[root@nginx ~]# curl 192.168.126.41:82
82

在这里插入图片描述在这里插入图片描述

基于域名

在这里插入图片描述

配置

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

[root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.conf
server {
  listen 80;
  server_name test1.dxk.com;

  location / {
    root /test1;
    index index.html;
  }
}

[root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.conf
server {
  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
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@nginx ~]# systemctl reload nginx

测试

# 配置域名解析
[root@nginx ~]# echo -e "192.168.126.41 test1.dxk.com\n192.168.126.41 test2.dxk.com" >> /etc/hosts
[root@nginx ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.126.41 test1.dxk.com
192.168.126.41 test2.dxk.com

[root@nginx ~]# curl test1.dxk.com
test1
[root@nginx ~]# curl test2.dxk.com
test2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里有个问题:

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

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

访问该错误域名

[root@nginx ~]# curl test3.dxk.com
test1

# 可以看到,还是会返回网页信息

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

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

这是需要注意的

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

您可能感兴趣的文章:nginx配置多个虚拟主机vhost的方法示例nginx 配置虚拟主机,实现在一个服务器可以访问多个网站的方法nginx配置虚拟主机vhost的方法详解详解Nginx虚拟主机配置中server_name的具体写法Nginx中虚拟主机与指定访问路径的设置方法讲解nginx 虚拟主机设置实例(多网站配置)

  • 本文相关:
  • 配置nginx服务器防止flood攻击的方法
  • 详解metricbeat监控nginx情况
  • nginx启动常见错误及解决方法
  • ubuntu系统中nginx启动脚本
  • 详解nginx服务器http重定向到https的正确写法
  • 基于nginx的mencached缓存配置详解
  • 重启或杀掉nginx进程后丢失nginx.pid的解决办法
  • nginx反向代理与负载均衡实战篇
  • nginx php-fcgi中因php执行时间导致504 gateway timeout错误解决
  • nginx 502 bad gateway和nginx 504 gateway time-out错误解决方法
  • nginx怎么配置虚拟主机 域名
  • Nginx配置基于IP的虚拟主机
  • 怎么打开nginx虚拟主机配置文件
  • 买的虚拟主机允许修改apache或nginx配置文件吗?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginx配置多个虚拟主机vhost的方法示例nginx 配置虚拟主机,实现在一个服务器可以访问多个网站的方法nginx配置虚拟主机vhost的方法详解详解nginx虚拟主机配置中server_name的具体写法nginx中虚拟主机与指定访问路径的设置方法讲解nginx 虚拟主机设置实例(多网站配置)配置nginx服务器防止flood攻击的方法详解metricbeat监控nginx情况ubuntu系统中nginx启动脚本详解nginx服务器http重定向到https的正确写法基于nginx的mencached缓存配置详解重启或杀掉nginx进程后丢失nginx.pid的解决办法nginx反向代理与负载均衡实战篇nginx php-fcgi中因php执行时间导致504 gateway timeout错误解决nginx 502 bad gateway和nginx 504 gateway time-out错误解决方法nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx服务器的反向代理proxy_pasnginx fastcgi错误primary scripnginx 403 forbidden的解决办法详解nginx服务器中配置超时时间的详解nginx upstream 配置和作用nginx伪静态配置和常用rewrite伪nginx的超时timeout配置详解使用nginx搭建图片服务器(windows环境下nginx状态监控以及日志分析详解linux nginx下ssl证书安装方法及wordpresnginx limit 限制访问模块的方法nginx定时切割日志实现详解nginx代理输出缩放图片的方法docker镜像导入导出备份迁移的操作通过nginx搭建tomcat9集群并实现session共详解nginx basic auth配置踩坑记nginx的一些常用配置与技巧总结
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved