• Nginx虚拟主机


    一 虚拟主机

    1.1 虚拟主机概念

    对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

    1.2 虚拟主机类型

    通过 Nginx 可以实现虚拟主机的配置,Nginx 支持三种类型的虚拟主机配置:
    • 基于 IP 的虚拟主机(较少使用)
    • 基于域名的虚拟主机
    • 基于端口的虚拟主机

    二 基于IP虚拟主机

    2.1 配置多IP地址

    [root@master ~]# ifconfig ens33:0 192.168.1.221 broadcast 192.168.1.255 netmask 255.255.255.0
    [root@master ~]# ip add |grep 192
        inet 192.168.1.220/24 brd 192.168.1.255 scope global noprefixroute ens33
        inet 192.168.1.221/24 brd 192.168.1.255 scope global secondary ens33:0

    提示:如上在同一台主机添加多个IP地址。

    2.2 创建站点目录

    [root@master ~]# mkdir /usr/share/nginx/ipvhost01/
    [root@master ~]# mkdir /usr/share/nginx/ipvhost02/
    [root@master ~]# echo '<h1>Ipvhost01</h1>' > /usr/share/nginx/ipvhost01/index.html
    [root@master ~]# echo '<h1>Ipvhost02</h1>' > /usr/share/nginx/ipvhost02/index.html

    2.3 配置虚拟主机

    [root@master ~]# vi /etc/nginx/conf.d/ipvhost01.conf
    server {
        listen  80;                 #监听端口
        server_name   192.168.1.220;        #配置虚拟主机名和IP
        location / {
            root   /usr/share/nginx/ipvhost01;              #请求匹配路径
            index  index.html;                              #指定主页
            access_log  /var/log/nginx/ipvhost01.access.log  main;
            error_log   /var/log/nginx/ipvhost01.error.log  warn;
        }
    }
    server {
        listen  80;
        server_name  192.168.1.221;
        location / {
            root   /usr/share/nginx/ipvhost02;
            index  index.html;
            access_log  /var/log/nginx/ipvhost02.access.log  main;
            error_log   /var/log/nginx/ipvhost02.error.log  warn;
        }
    }
    [root@master ~]# nginx -t -c /etc/nginx/nginx.conf
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@master ~]# nginx -s reload

    2.4 确认验证

     

    三 基于域名虚拟主机

    3.1 创建站点目录

    [root@master ~]# mkdir /usr/share/nginx/webvhost01/
    [root@master ~]# mkdir /usr/share/nginx/webvhost02/
    [root@master ~]# echo '<h1>Webvhost01</h1>' > /usr/share/nginx/webvhost01/index.html
    [root@master ~]# echo '<h1>Webvhost02</h1>' > /usr/share/nginx/webvhost02/index.html

    3.2 配置虚拟主机

    [root@master ~]# vi /etc/nginx/conf.d/webvhost.conf
    server {
        listen  80;
        server_name  webvhost01.odocker.com;
        location / {
            root   /usr/share/nginx/webvhost01;
            index  index.html;
            access_log  /var/log/nginx/webvhost01.access.log  main;
            error_log   /var/log/nginx/webvhost01.error.log  warn;
        }
    }
    server {
        listen  80;
        server_name  webvhost02.odocker.com;
        location / {
            root   /usr/share/nginx/webvhost02;
            index  index.html;
            access_log  /var/log/nginx/webvhost02.access.log  main;
            error_log   /var/log/nginx/webvhost02.error.log  warn;
        }
    }
    [root@master ~]# nginx -t -c /etc/nginx/nginx.conf
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@master ~]# nginx -s reload

    3.3 确认验证

    [root@master ~]# curl webvhost01.odocker.com
    <h1>Webvhost01</h1>
    [root@master ~]# curl webvhost02.odocker.com
    <h1>Webvhost02</h1>

    四 基于端口虚拟主机

    4.1 创建站点目录

    [root@master ~]# mkdir /usr/share/nginx/portvhost01/
    [root@master ~]# mkdir /usr/share/nginx/portvhost02/
    [root@master ~]# echo '<h1>Portvhost01</h1>' > /usr/share/nginx/portvhost01/index.html
    [root@master ~]#  echo '<h1>Portvhost01</h1>' > /usr/share/nginx/portvhost02/index.html
    [root@master ~]# vi /etc/nginx/conf.d/portvhost.conf
    server {
        listen  8080;
        server_name  portvhost01.odocker.com;
        location / {
            root   /usr/share/nginx/portvhost01;
            index  index.html;
            access_log  /var/log/nginx/portvhost01.access.log  main;
            error_log   /var/log/nginx/portvhost01.error.log  warn;
        }
    }
    server {
        listen  8081;
        server_name  portvhost02.odocker.com;
        location / {
            root   /usr/share/nginx/portvhost02;
            index  index.html;
    access_log  /var/log/nginx/access_portvhost02.log  main;
        }
    }
    ~
    [root@master ~]# nginx -t -c /etc/nginx/nginx.conf
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@master ~]# nginx -s reload

    3.3 确认验证

    [root@master ~]# curl portvhost01.odocker.com:8080
    <h1>Portvhost01</h1>
    [root@master ~]# curl portvhost02.odocker.com:8081
    <h1>Portvhost01</h1>
  • 相关阅读:
    Entity Framework应用:Loading Entities
    Entity Framework应用:使用LINQ操作
    Entity Framework应用:Code First的实体继承模式
    Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据
    Entity Framework应用:Code First模式数据迁移的基本用法
    DeepLearning.ai学习笔记(四)卷积神经网络 -- week3 目标检测
    DeepLearning.ai学习笔记(四)卷积神经网络 -- week2深度卷积神经网络 实例探究
    DeepLearning.ai学习笔记(四)卷积神经网络 -- week1 卷积神经网络基础知识介绍
    【Udacity并行计算课程笔记】- Lesson 2 The GPU Hardware and Parallel Communication Patterns
    DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)
  • 原文地址:https://www.cnblogs.com/liujunjun/p/14020877.html
Copyright © 2020-2023  润新知