美文网首页
Nginx 虚拟主机

Nginx 虚拟主机

作者: fbckf | 来源:发表于2018-10-25 21:29 被阅读0次

    上一篇 Nginx 配置文件

    Nginx 虚拟主机配置

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

     可以通过 nginx 进行虚拟主机的配置,只需要在 http {} 中添加一个 server {} 模块即可。nginx 虚拟主机的配置,一般分为三种:域名、端口和 ip。

    基于域名

    # 基于域名的虚拟主机配置
    # 域名为 domain.cm
    server {
        server_name domain.cm *.domain.cm www.domain.*;
        root html;
        index index.html index.htm /index.php;
    }
    
    # 域名为 domain.cn
    server {
        server_name domain.cn;
        root /var/web/;
        index index.html;
    }
    
    • server_name 指定虚拟主机的名字。可以指定多个名称,第一个为虚拟主机的名字。可以使用 “ * ” 替代服务器名称的开始或者最后部分。

    • root 设置请求的根目录,可以用绝对路径或相对路径,如 root html; 会等于 root /usr/local/nginx/html; 。而这样设置,当收到一个 domain.cm/index.html 请求时,/usr/local/nginx/html/index.html 文件将会被发送在响应中响应该请求。

    • index 定义将用做索引的文件。文件名称可以包含变量,按照指定的顺序进行文件检查的,最后一个参数可以是绝对路径。实际上 domain.cm 请求会被处理成 domain.cm/index.html 。

     基于域名的虚拟主机配置,指定了虚拟主机名称、请求根目录和索引。在 nginx 配置文件中添加如上配置(添加 http {} 中)保存、重新加载配置文件 ( systemctl reload nginx ),这里使用虚拟机测试,需要在物理机的 hosts 文件中修改配置,如下 :

    # ip 为自己虚拟机ip地址
    192.168.107.156 domain.cm
    192.168.107.156 domain.cn
    

     在 /var/web/ 目录(没有该目录就新建一个)中新建一个 index.html,内容如下:

    <html>
    <head>
        <title>hostname</title>
    </head>
    <body>
        domain cn
    </body>
    </html>
    

     之后在浏览器中输入 domain.cm 即可看到 nginx 的 “ Welcome to nginx! ” 页面。输入 domain.cn 则可以看到页面显示 “ domain cn ”

    基于端口

     添加以下配置

    # 基于端口虚拟主机配置
    server {
        listen 8888;
        server_name domain.cm;
        root /var/web/port/;
        index index.html;
    }
    

    listen 设置 IP 的地址和端口(可以只设置地址或只设置端口,地址可以是主机名),或者设置一个服务器用于接收请求的套接字路径,如下:

    listen 127.0.0.1:8000;
    listen 127.0.0.1;
    listen 8000;
    listen *:8000;
    listen localhost:8000;
    listen unix:/var/run/nginx.sock;
    

     添加 /var/web/port/index.html 文件,如下:

    <html>
    <head>
        <title>port</title>
    </head>
    <body>
        domain cm 8888
    </body>
    </html>
    

     执行 systemctl reload nginx 并访问 domain.cm:8888 可以看到页面中显示的内容正是 /var/web/port/index.html 的内容 “ domain cm 8888 ”。

    基于ip

     添加以下配置

    # 基于 ip 地址的虚拟主机配置
    server {
        listen 80;
        server_name 192.168.107.156;
        root /var/web/ip/;
        index index.html;
    }
    

     添加 /var/web/ip/index.html 文件,如下:

    <html>
    <head>
        <title>ip</title>
    </head>
    <body>
        ip 192.168.107.156
    </body>
    </html>
    

    systemctl reload nginx 并访问 192.168.107.156 可以看到页面中显示的内容正是 /var/web/ip/index.html 的内容 “ ip 192.168.107.156 ”。

     以上就是关于 nginx 虚拟主机配置的内容。

    参考

    下一篇 Nginx location

    相关文章

      网友评论

          本文标题:Nginx 虚拟主机

          本文链接:https://www.haomeiwen.com/subject/ueqhtqtx.html