Linux学习之nginx虚拟域名主机,lsof和netstat命令查看端口是否被监听

需要先参考我的博客《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1,使用systemd管理OpenResty服务》安装好Openresty

虚拟域名可以使用让不同的域名访问到同一台主机。
cd /usr/local/openresty切换当前访问目录到/usr/local/openresty

/usr/local/openresty/nginx/conf/nginx.conf文件的http配置块末尾添加上以下的内容:

bash 复制代码
server {
        # 监听8000
        listen       8000;
        # 域名设为 www.sea.com
        server_name  www.sea.com;

        location / {
            # 访问根目录是html/sea
            root   html/sea;
            index  index.html index.htm;
        }
    }
server {
        # 监听8800
        listen       8800;
        # 域名设为 www.sea.com
        server_name  www.side.com;

        location / {
            # 访问根目录是html/side
            root   html/side;
            index  index.html index.htm;
        }
    }

/usr/local/openresty/nginx/conf/nginx.conf文件整体内容如下:

bash 复制代码
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        # 监听8000
        listen       8000;
        # 域名设为 www.sea.com
        server_name  www.sea.com;

        location / {
            # 访问根目录是html/sea
            root   html/sea;
            index  index.html index.htm;
        }
    }
    server {
        # 监听8800
        listen       8800;
        # 域名设为 www.sea.com
        server_name  www.side.com;

        location / {
            # 访问根目录是html/side
            root   html/side;
            index  index.html index.htm;
        }
    }
}

我使用的是vim编辑器,要是不知道vim编辑怎么使用,可以看一下我的博客

/usr/local/openresty/nginx/sbin/nginx -t可以检查一下格式和测试都是正常的。

/usr/local/openresty/nginx/sbin/nginx进行启动。

lsof -i:8000可以看到8000端口已经被监听,lsof -i:8800可以看到8800端口也已经被监听,lsof -i:7800没有被监听,因为没有任何输出,注意:7800端口只是测试一下,说明什么叫没有被监听。

/usr/local/openresty/nginx/sbin/nginx再次进行启动,发现报错如下:

bash 复制代码
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8000 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:8800 failed (98: Address already in use)

/usr/local/openresty/nginx/sbin/nginx -s stop可以停止nginx/usr/local/openresty/nginx/sbin/nginx再次启动。

netstat -ntpl | grep nginx查看一下nginx的监听端口。

接下来把下边的内容也添加到/usr/local/openresty/nginx/conf/nginx.confhttp配置块里:

bash 复制代码
   server {
        # 监听9800
        listen       9800;
        # 域名设为 www.work.com
        server_name  www.work.com;

        location / {
            # 访问根目录是html/work
            root   html/work;
            index  index.html index.htm;
        }
    }

/usr/local/openresty/nginx/conf/nginx.conf文件整体内容如下:

bash 复制代码
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }


    server {
        # 监听8000
        listen       8000;
        # 域名设为 www.sea.com
        server_name  www.sea.com;

        location / {
            # 访问根目录是html/sea
            root   html/sea;
            index  index.html index.htm;
        }
    }


    server {
        # 监听8800
        listen       8800;
        # 域名设为 www.sea.com
        server_name  www.side.com;

        location / {
            # 访问根目录是html/side
            root   html/side;
            index  index.html index.htm;
        }
    }
    
   server {
        # 监听9800
        listen       9800;
        # 域名设为 www.work.com
        server_name  www.work.com;

        location / {
            # 访问根目录是html/work
            root   html/work;
            index  index.html index.htm;
        }
    }
}

/usr/local/openresty/nginx/sbin/nginx -s reload可以在不断开已有连接的基础上重新加载/usr/local/openresty/nginx/conf/nginx.conf


echo "127.0.0.1 www.sea.com www.side.com www.work.com" >> /etc/hosts127.0.0.1 www.sea.com www.side.com www.work.com写入/etc/hosts里边。

mkdir /usr/local/openresty/nginx/html/sea /usr/local/openresty/nginx/html/side /usr/local/openresty/nginx/html/work/usr/local/openresty/nginx/html创建三个目录seasidework

执行下边命令:

bash 复制代码
echo "hello sea" > /usr/local/openresty/nginx/html/sea/index.html # 在/usr/local/openresty/nginx/html/sea/index.html写入 hello sea
echo "hello side" > /usr/local/openresty/nginx/html/side/index.html # 在/usr/local/openresty/nginx/html/side/index.html写入 hello side
echo "hello work" > /usr/local/openresty/nginx/html/work/index.html # 在/usr/local/openresty/nginx/html/work/index.html 写入 hello work

curl http://www.sea.com:8000可以访问虚拟域名www.sea.com8000端口。
curl http://www.side.com:8800可以访问虚拟域名www.side.com8800端口。
curl http://www.work.com:9800可以访问虚拟域名www.work.com9800端口。

此文章为8月Day 26学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》

相关推荐
用户311879455921817 小时前
Kylin Linux 10 安装 glib2-devel-2.62.5-7.ky10.x86_64.rpm 方法(附安装包)
linux
涛啊涛18 小时前
Centos7非LVM根分区容量不足后扩容,对调硬盘挂载/
linux·磁盘管理
CYRUS_STUDIO2 天前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李2 天前
rootfs-根文件系统详解
linux
dessler2 天前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
泽泽爱旅行2 天前
awk 语法解析-前端学习
linux·前端
轻松Ai享生活3 天前
5 节课深入学习Linux Cgroups
linux
christine-rr3 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5553 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆3 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs