文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

nginx如何配置虚拟主机

2023-06-20 15:05

关注

本篇内容介绍了“nginx如何配置虚拟主机”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

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

nginx如何配置虚拟主机

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

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

nginx如何配置虚拟主机

方式一:多网卡多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 -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful

重载nginx服务

[root@nginx ~]# systemctl reload nginx

测试

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

nginx如何配置虚拟主机nginx如何配置虚拟主机

方式二:单网卡多IP

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

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

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

基于端口

nginx如何配置虚拟主机

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

配置

[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 -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful[root@nginx ~]# systemctl reload nginx

测试

[root@nginx ~]# curl 192.168.126.41:8181[root@nginx ~]# curl 192.168.126.41:8282

nginx如何配置虚拟主机nginx如何配置虚拟主机

基于域名

nginx如何配置虚拟主机

配置

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

[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 -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: 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/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.126.41 test1.dxk.com192.168.126.41 test2.dxk.com[root@nginx ~]# curl test1.dxk.comtest1[root@nginx ~]# curl test2.dxk.comtest2

nginx如何配置虚拟主机
nginx如何配置虚拟主机
nginx如何配置虚拟主机

这里有个问题:

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

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

访问该错误域名

[root@nginx ~]# curl test3.dxk.comtest1# 可以看到,还是会返回网页信息

因为在配置域名解析时,虽然域名写错了,但是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如何配置虚拟主机”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯