当前位置: 首页 > news >正文

Nginx--虚拟机配置

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

1、什么是虚拟主机

虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。

nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置:

  • 基于域名的虚拟主机 (server_name来区分虚拟主机——应用:外部网站)
  • 基于ip的虚拟主机 (一块主机绑定多个ip地址)
  • 基于端口的虚拟主机 (端口来区分虚拟主机——应用:公司内部网站,外部网站的管理后台)

2、基于域名的虚拟主机

(1)配置通过域名区分的虚拟机

 [root@centos ~]# cat /etc/nginx/nginx.confworker_processes auto;worker_rlimit_nofile 102400;events {worker_connections  1024;}​http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;​server {listen       80;server_name  web.testpm.com;    # 配置域名为web.testpm.com​location / {root   /var/www/nginx;      # 根目录index  index.html index.htm;    # 文件}}​server {listen       80;server_name  web.1000phone.com; # 配置域名为web.1000phone.com​location / {root   /1000phone/html;     # 网站展示文件根目录index  index.html index.htm;    # 展示文件}}}

(2)为配置的两个域名创建目录与index文件

 [root@centos html]# cat /var/www/nginx/index.htmlThis is the index.html Home of domain web.testpm.com!\nweb.testpm.com![root@centos html]# cat /1000phone/html/index.htmlThis is the index.html Home of domain web.1000phone.com!\nweb.1000phone.com!

(3)重新加载配置文件

 # 如果编译安装的执行[root@nginx]# /usr/local/nginx/sbin/nginx -s reload# 如果 yum 安装的执行[root@nginx]# nginx -s reload

(4)客户端配置路由映射

在 C:\Windows\System32\drivers\etc\hosts 文件中添加两行 | (linux:/etc/hosts)

 # 主机IP 配置的域名10.0.0.2 web.testpm.com10.0.0.2 web.1000phone.com

(5)测试访问

浏览器分别输入http://web.testpm.com与http://web.1000phone.com

3、基于IP的虚拟主机

(1)为网卡新增一个IP地址

 [root@centos ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::20c:29ff:fe39:6cf4  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:39:6c:f4  txqueuelen 1000  (Ethernet)RX packets 99486  bytes 71872175 (68.5 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 74475  bytes 5417252 (5.1 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@centos ~]# ifconfig ens33:1 10.0.0.3/24[root@centos ~]# ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.2  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::20c:29ff:fe39:6cf4  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:39:6c:f4  txqueuelen 1000  (Ethernet)RX packets 99522  bytes 71875437 (68.5 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 74505  bytes 5422160 (5.1 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0​ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 10.0.0.3  netmask 255.255.255.0  broadcast 10.0.0.255ether 00:0c:29:39:6c:f4  txqueuelen 1000  (Ethernet)

(2)配置通过IP区分的虚拟机

 [root@centos ~]# cat /etc/nginx/nginx.conf...server {listen       10.0.0.2:80;       # 修改网站监听IP为10.0.0.2:80server_name  web.testpm.com;​location / {root   /var/www/nginx;index  index.html index.htm;}}​server {listen       10.0.0.3:80;       # 修改此处server_name  web.1000phone.com;​location / {root   /1000phone/html;index  index.html index.htm;}}}

(3)重新加载配置文件

nginx -t && nginx -s reload

(4)客户端配置路由映射

 # 主机IP 配置的域名10.0.0.2 web.testpm.com10.0.0.2 web.1000phone.com10.0.0.3 web.1000phone.com

(5)测试访问

4、基于端口的虚拟主机

(1)编辑配置文件并重新加载

 [root@centos ~]# cat /etc/nginx/nginx.conf...server {listen       80;        # 设置80端口server_name  web.testpm.com;​location / {root   /var/www/nginx;index  index.html index.htm;}}​server {listen       8080;      # 设置为8080端口server_name  web.1000phone.com;​location / {root   /1000phone/html;index  index.html index.htm;}}}[root@centos ~]# nginx -s reload

(2)测试访问

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!​​​​​​​

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Redis 哈希(Hash)
  • 【LiteX】【仿真】使用litex_sim在Python环境中实现FPGA SoC仿真测试
  • 谷歌的高级指令有哪些
  • 测试流程自动化实践!
  • Qcadoo MES(生产制造管理系统)编译、运行的相关配置
  • 【Python】函数入门(上)
  • Mac安装完maven,报zsh: command not found: mvn解决
  • ArcGIS简单介绍
  • 【屏驱MCU】系列文章合集
  • xssnote
  • 【微信小程序】网络数据请求
  • Spring由哪些模块组成?
  • 【已解决】tokenizer.chat_template is not set and no template argument was passed
  • dockers 阿里云镜像失效后如何配置,可视化操作
  • Linux如何查看服务启动状态是否开机自动启动
  • 《Java编程思想》读书笔记-对象导论
  • 【Amaple教程】5. 插件
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Asm.js的简单介绍
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • bootstrap创建登录注册页面
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Javascript Math对象和Date对象常用方法详解
  • java多线程
  • js面向对象
  • JS字符串转数字方法总结
  • Python十分钟制作属于你自己的个性logo
  • Vue UI框架库开发介绍
  • webpack入门学习手记(二)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (HAL库版)freeRTOS移植STMF103
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (七)glDrawArry绘制
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十一)手动添加用户和文件的特殊权限
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)可以带来幸福的一本书
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理出现中文乱码的情况
  • .gitignore文件设置了忽略但不生效
  • .NET CLR基本术语
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net framework profiles /.net framework 配置
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 使用配置文件
  • .net分布式压力测试工具(Beetle.DT)
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .sh 的运行