nginx-配置基于ip或域名的虚拟主机

【0】README: nginx 可以配置多种类型的虚拟主机: 

类型1) 基于ip的虚拟主机;

类型2)基于域名的虚拟主机;

类型3)基于端口的虚拟主机;


【1】配置基于 ip 的虚拟主机的准备工作

step1) 先用 ifconfig 查看该服务器的ip地址:   本服务器有一块物理网卡设备 eth0 和 本地回环设备lo, eth0 的ip地址为 192.168.186.100 ,本地回环lo的ip地址为 127.0.0.1 ;

eth0      Link encap:Ethernet  HWaddr 00:0C:29:71:D7:1A  inet addr:192.168.186.100  Bcast:192.168.186.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe71:d71a/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:1349 errors:0 dropped:0 overruns:0 frame:0TX packets:1155 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:139966 (136.6 KiB)  TX bytes:145180 (141.7 KiB)Interrupt:19 Base address:0x2000 lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:16436  Metric:1RX packets:4 errors:0 dropped:0 overruns:0 frame:0TX packets:4 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b) 

step2)  在 eth0 网卡设备上 添加两个ip别名 192.168.186.101 和 192.168.186.102,可以通过以下的 ifconfig 和 route命令来进行:

[root@localhost nginx]# ifconfig eth0:1 192.168.186.101 broadcast 192.168.186.255 netmask 255.255.255.0 up
[root@localhost nginx]# route add -host 192.168.186.101 dev eth0:1
[root@localhost nginx]# 
[root@localhost nginx]# ifconfig eth0:2 192.168.186.102 broadcast 192.168.186.255 netmask 255.255.255.0 up
[root@localhost nginx]# route add -host 192.168.186.102 dev eth0:2

step3)再执行 ifconfig命令,就可以看到 eth0 网卡设备上绑定两个 ip 别名,如下所示:

[pacoson@localhost ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:71:D7:1A  inet addr:192.168.186.100  Bcast:192.168.186.255  Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fe71:d71a/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:1349 errors:0 dropped:0 overruns:0 frame:0TX packets:1155 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:139966 (136.6 KiB)  TX bytes:145180 (141.7 KiB)Interrupt:19 Base address:0x2000 eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:71:D7:1A  inet addr:192.168.186.101  Bcast:192.168.186.255  Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1Interrupt:19 Base address:0x2000 eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:71:D7:1A  inet addr:192.168.186.102  Bcast:192.168.186.255  Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1Interrupt:19 Base address:0x2000 lo        Link encap:Local Loopback  inet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:16436  Metric:1RX packets:4 errors:0 dropped:0 overruns:0 frame:0TX packets:4 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0 RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

step4)ping 通, 证明配置无误

[pacoson@localhost ~]$ ping 192.168.186.101
PING 192.168.186.101 (192.168.186.101) 56(84) bytes of data.
64 bytes from 192.168.186.101: icmp_seq=1 ttl=64 time=4.35 ms
64 bytes from 192.168.186.101: icmp_seq=2 ttl=64 time=0.149 ms
64 bytes from 192.168.186.101: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from 192.168.186.101: icmp_seq=4 ttl=64 time=0.065 ms
64 bytes from 192.168.186.101: icmp_seq=5 ttl=64 time=0.063 ms
64 bytes from 192.168.186.101: icmp_seq=6 ttl=64 time=0.066 ms
64 bytes from 192.168.186.101: icmp_seq=7 ttl=64 time=0.070 ms
64 bytes from 192.168.186.101: icmp_seq=8 ttl=64 time=0.069 ms
^C
--- 192.168.186.101 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7915ms
rtt min/avg/max/mdev = 0.063/0.613/4.352/1.413 ms
[pacoson@localhost ~]$ 
[pacoson@localhost ~]$ 
[pacoson@localhost ~]$ ping 192.168.186.102
PING 192.168.186.102 (192.168.186.102) 56(84) bytes of data.
64 bytes from 192.168.186.102: icmp_seq=1 ttl=64 time=9.36 ms
64 bytes from 192.168.186.102: icmp_seq=2 ttl=64 time=0.212 ms
64 bytes from 192.168.186.102: icmp_seq=3 ttl=64 time=0.065 ms
64 bytes from 192.168.186.102: icmp_seq=4 ttl=64 time=0.063 ms
64 bytes from 192.168.186.102: icmp_seq=5 ttl=64 time=0.064 ms
64 bytes from 192.168.186.102: icmp_seq=6 ttl=64 time=0.063 ms
64 bytes from 192.168.186.102: icmp_seq=7 ttl=64 time=0.063 ms
64 bytes from 192.168.186.102: icmp_seq=8 ttl=64 time=0.077 ms
64 bytes from 192.168.186.102: icmp_seq=9 ttl=64 time=0.062 ms
^C
--- 192.168.186.102 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 8993ms
rtt min/avg/max/mdev = 0.062/1.115/9.366/2.917 ms 

【注意】ifconfig 和 route 配置的ip别名在服务器重启后会消失;可以将 ifconfig 和 route 命令添加到 /etc/rc.local 文件中, 让系统开机时自动运行, 以下是相关命令:

vim /etc/rc.local

在末尾增加以下内容, 

ifconfig eth0:1 192.168.186.101 broadcast 192.168.186.255 netmask 255.255.255.0 up
route add -host 192.168.186.101 dev eth0:1
ifconfig eth0:2 192.168.186.102 broadcast 192.168.186.255 netmask 255.255.255.0 up
route add -host 192.168.186.102 dev eth0:2


【2】配置基于ip的虚拟主机

1)配置文件 nginx.conf 如下:

# this config is from 3-6
worker_processes 3;
events {worker_connections 1024;
}
http
{# first virtual host 第一个虚拟主机server{# ip and port monitored 监听的ip和端口listen          192.168.186.100:80;# host name 主机名称server_name    192.168.186.100;# the dir access_log saved 访问日志文件存放路径access_log      logs/server1.access.log combined;location /{# default index file, priority reduction from left to right# 默认首页文件,顺序从左到右,index index.html index.htm;# the dir html file saved, html网页文件存放目录root  /data0/htdocs/server1;}}# second virtual hostserver{listen          192.168.186.101:80;server_name    192.168.186.101;access_log      logs/server2.access.log combined;location /{index index.html index.htm;root  /data0/htdocs/server2;}}# third virtual hostserver {listen          192.168.186.102:80;server_name    192.168.186.102;access_log      logs/server3.access.log combined;location /{index index.html index.htm;root  /data0/htdocs/server3.com;}}
}

【3】配置基于域名的虚拟主机
1)nginx配置文件如下:

http
{# 第一个虚拟主机server{# 监听的端口listen     80;# 主机名称server_name    aaa.domain.com;# 访问日志文件存放路径access_log      logs/aaa.domain.com.access.log combined;location /{# 默认首页文件,顺序从左到右,如果找不到index.html文件,则查找index.htm文件作为首页文件index index.html index.htm;# HTML网页文件存放的目录root  /data0/htdocs/aaa.domain.com;}}# 第二个虚拟主机server{# 监听的IP和端口listen     80;# 主机名称server_name    bbb.otherdomain.com;# 访问日志文件存放路径access_log      logs/bbb.otherdomain.com.access.log combined;location /{# 默认首页文件,顺序从左到右,如果找不到index.html文件,则查找index.htm文件作为首页文件index index.html index.htm;# HTML网页文件存放的目录root  /data0/htdocs/bbb.otherdomain.com;}}# 第三个虚拟主机server{# 监听的IP和端口listen     80;# 主机名称server_name    www.domain.com domain.com *.domain.com;# 访问日志文件存放路径access_log      logs/bbb.domain.com.access.log combined;location /{# 默认首页文件,顺序从左到右,如果找不到index.html文件,则查找index.htm文件作为首页文件index index.html index.htm;# HTML网页文件存放的目录root  /data0/htdocs/domain.com;}}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat集群session复制与Oracle的坑

转载自 Tomcat集群session复制与Oracle的坑 问题描述 公司某个系统使用了tomcat自带的集群session复制功能,然后后报了一个oracle驱动包里面的连接不能被序列化的异常。 01-Nov-2017 16:45:26.653 SEVERE [https-jsse-nio-8443-exec-2] org.apache.catalina.ha.ses…

存储过程内基础语法---补充while循环

1.基础语法 while循环初始化语句;WHILE 条件判断语句 DO循环体语句;条件控制语句;END WHILE;2.举例 计算1~100之间的偶数和 【注&#xff1a;num只能numnum1 不能num,num1; 】 <1>存储过程内部查询 DELIMITER $CREATE PROCEDURE pro_test6() BEGIN-- 定义求和变量DE…

nginx停止,平滑重启命令

TERM, INT 快速关闭&#xff1b; QUIT 从容关闭&#xff1b; HUP 平滑重启&#xff0c;重新加载配置文件&#xff1b; USR1 重新打开日志文件&#xff0c;在切割日志时用途较大&#xff1b; USR2 平滑升级可执行程序&#xff1b; WINCH 从容关闭工作进程&#xff1b; 【荔…

IntelliJ IDEA Community(社区版)下载及安装自用版

IntelliJ IDEA Community&#xff08;社区版&#xff09;下载及安装自用版 估计是个开发都逃脱不了用IDEA的命运吧&#xff0c;这么好的软件&#xff0c;白嫖了好多年。感恩。 现在很多公司已经不让用商业版的破解版了&#xff0c;所以这里讲的是社区版。 区别&#xff1a; 商…

视图的概述

1.概念和特点 <1>概念&#xff1a;视图&#xff08;view&#xff09;是一种虚拟存在的表&#xff0c;本身并不包含数据。它是作为一个select语法查询到的结果集&#xff0c;以此为基表创建的一张虚拟表。对视图的操作对基表有直接影响,[视图中的数据发送了改变&#xff…

Tengine-Ngnix高级版

转载自 Tengine&#xff0d;Ngnix高级版 Tengine介绍 Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上&#xff0c;针对大访问量网站的需求&#xff0c;添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网&#xff0c;天猫商城等得到了很好的…

nginx的日志文件配置

1&#xff09;与nginx日志相关的指令有两条&#xff1a;log_format 和 access_log&#xff1b;log_format 设置日志格式&#xff1b;access_log 指定日志文件存放路径&#xff1b;2&#xff09;log_foramt2.1&#xff09;指令参数&#xff1a;log_format combined $remote_addr…

存储引擎和数据库锁

一.存储引擎 1.MySQL体系结构 数据库存储引擎是数据库最核心的部分&#xff0c;不同的存储引擎提供不同的存储机制、索引技巧等。也就是说不同的存储引擎底层对数据的组织方式不一样&#xff0c;从而导致性能和特点也不一样。 2.MySQL 当中常用的存储引擎&#xff1a; Inno…

因修改/etc/sudoers权限导致sudo和su不能使用的解决方法

【1】问题描述 [pacosonlocalhost ~]$ sudo sudo&#xff1a;/etc/sudoers 属于组 ID 180301&#xff0c;应为 0 sudo&#xff1a;没有找到有效的 sudoers 资源&#xff0c;退出 sudo&#xff1a;无法初始化策略插件【2】解决方法 遇见这种问题应该检查sudo文件拥有者名称 ---x…

一张图搞清楚Java异常机制

转载自 一张图搞清楚Java异常机制 下面是Java异常类的组织结构&#xff0c;红色区域的异常类表示是程序需要显示捕捉或者抛出的。 Throwable Throwable是Java异常的顶级类&#xff0c;所有的异常都继承于这个类。 Error&#xff0c;Exception是异常类的两个大分类。 Error Erro…

索引---B+Tree

1.索引的介绍 MySQL 索引&#xff1a;是帮助 MySQL 高效获取数据的一种数据结构。所以&#xff0c;索引的本质就是数据结构&#xff01;在表数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式指向数据&#xff0c; 这样就…

nginx应用领域分类+事件模型

【1】nginx应用领域分类&#xff1a; 类1&#xff1a;nginx反向代理与负载均衡类网站应用&#xff1b; 类2&#xff1a;nginx php/jsp 类网站应用&#xff1b; 类3&#xff1a;nginx静态内容web服务器应用&#xff1b; 【2】F5 指的是 BIG-IP 硬件 四/七层负载均衡交换机&a…

接口限流算法:漏桶算法amp;令牌桶算法

转载自 接口限流算法&#xff1a;漏桶算法&令牌桶算法背景 每一个对外提供的API接口都是需要做流量控制的&#xff0c;不然会导致系统直接崩溃。很简单的例子&#xff0c;和保险丝的原理一样&#xff0c;如果用电符合超载就会烧断保险丝断掉电源以达到保护的作用。API限流的…

索引失效的场景(面试)

1.where条件中有or关键字 -- 创建组合索引 CREATE INDEX idx_name ON student(NAME,age); -- 查询 SELECT COUNT(*) FROM student WHERE NAMEjack666; -- 命中索引 SELECT COUNT(*) FROM student WHERE NAMEjack666 and age666; -- 命中索引 SELECT COUNT(*) FROM student WH…

nginx负载均衡与反向代理

【1】负载均衡 1&#xff09;问题&#xff1a;如何在多个网络设备或服务器之间实现合理的业务量分配&#xff0c;使之不会出现一台设备过忙&#xff0c;而其他设备却没有充分使用的情况。2&#xff09;解决方法&#xff1a;要解决这一问题&#xff0c;可以采用负载均衡的方法&a…

JDBC入门案例及相关API概述

1 JDBC概念 问题&#xff1a;JDBC的本质是什么&#xff0c;解决了什么问题&#xff1f; 2.API讲解 <1> DriverManager的作用 问题&#xff1a;DriverManager有什么作用&#xff1f; 作用一&#xff1a;注册驱动 DriverManager.registerDriver(new Driver())&#…

Spring Boot国际化支持

转载自 Spring Boot国际化支持本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持&#xff0c;根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际化自动配置 Spring Boot中已经对国际化这一块做了自动配置。 国际化自动配置类&#xff1a;o…

http响应状态码列表

1&#xff09;响应状态码用于表示服务器对请求的各种不同处理结果和状态&#xff1b; 2&#xff09;响应状态码分为5类&#xff1a;类1&#xff09;100~199&#xff1a;表示成功接收请求&#xff0c;要求客户端继续提交下一次请求才能完成整个处理过程&#xff1b;类2&#xff…

Spring Boot整合Thymeleaf模板引擎

转载自 Spring Boot整合Thymeleaf模板引擎什么是Thymeleaf Thymeleaf是一款用于渲染XML、XHTML、HTML5内容的模板引擎。类似Velocity&#xff0c;FreeMaker模板引擎&#xff0c;它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。 Thymeleaf也是Spring Boot首…

JDBC的SQL注入漏洞

1.概念&#xff1a; 利用sql语句的漏洞来对系统进行攻击&#xff0c;导致数据泄露 2.案例演示 数据库登录表&#xff1a; 模拟登录代码【输入正确的用户名和密码才能打印出用户信息】 public class SQL注入 {public static void main(String[] args) {login( " or 1…