Nginx如何配置多个服务域名解析共用80端口

admin11个月前笔记106
前言

一台服务器同时有多个服务,这些服务通过域名解析都希望监听80/443端口直接通过域名访问,比如有demo.test.com和product.test.com。这时候我们可以使用nginx的代理转发功能帮我们实现共用80/443端口的需求。

备注:由于HTTP协议默认监听80端口,HTTPS协议默认监听443端口,所以使用浏览器访问80/443端口的服务时,可以忽略域名后的“ :80/:443” 端口,直接配置监听到80端口,访问比较方便。

配置nginx多服务共用80端口

首先找到nginx配置文件

通过apt-get install nginx命令安装的nginx默认配置文件存放在:/etc/nginx目录下
  
切换到/etc/nginx目录
  
#cd /etc/nginx           #切换到nginx目录
  
# ls                     #查看nginx目录下文件
conf.d        fastcgi_params  koi-win     modules-available  nginx.conf    scgi_params      sites-enabled  uwsgi_params fastcgi.conf  koi-utf         mime.types  modules-enabled    proxy_params  sites-available  snippets       win-utf
  
#vim nginx.conf          #打开nginx配置文件(输入shift+i插入内容,esc退出编辑,点击shift+:输入q退出当前页,q!强制退出,不保存编辑的内容;输入wq!强制退出并保存)
以下以两个服务使用域名访问,共用80端口为例
方案一:多个不同端口服务共用80端口

1)配置nginx.conf文件

1.先配置两个端口服务:
// nginx.conf
#demo
server {
    listen       8001;
    server_name localhost;
    try_files $uri $uri/ /index.html;
    root    /home/www/demo;
}
#product
server {
    listen        8002;
    server_name  localhost;
    try_files $uri $uri/ /index.html;
    root    /home/www/product;
}
  
2.配置代理:
// nginx.conf
#demo转发
server {
    listen       80;
    server_name demo.test.com;
    location / {
        proxy_pass http://localhost:8001;
    }
}
#product转发
server {
    listen       80;
    server_name product.test.com;
    location / {
        proxy_pass http://localhost:8002;
    }
}

2)配置完成后重启nginx服务

#systemctl restart nginx

3) 如果是本地局域网需要配置网络将对应的端口,我这边是80,8001,8002三个端口映射到公网IP,并解析对应的域名,完成后就可以正常访问了;

方案二:多个服务共用80端口

1)配置nginx.conf文件

// nginx.conf
# nginx 80端口配置 (监听demo二级域名)
server {
    listen  80;
    server_name     demo.test.com;
    location / {
        root   /home/www/demo;
        index  index.html index.htm;
    }
}
  
# nginx 80端口配置 (监听product二级域名)
server {
    listen  80;
    server_name     product.test.com;
    location / {
        root   /home/www/product;
        index  index.html index.htm;
    }
}

2)参考方案一,配置完成后保存,重启nginx服务,访问测试。


相关文章

一条线 理解SSH登录前因后果

一条线 理解SSH登录前因后果

SSH流程图根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程。Hibernate层主要负责映射文件和Action和Service的注入,负责后台服务3层之间调用**JSP相当...

如何用 scp 在本地和远程主机之间复制文件

如何用 scp 在本地和远程主机之间复制文件

使用 scp 命令可以将文件从远程操作系统服务器传输到本地操作系统,或从本地操作系统复制到远程操作系统。此命令使用 SSH 服务进行身份验证,并对传输的数据进行加密,所以它即可以使用用户名密码的方式进...

linux的网络服务功能—FTP、SSH和NFS

linux的网络服务功能—FTP、SSH和NFS

现在很多用linux进行开发的工程师,他们大多都是在windows系统上安装虚拟机,然后在虚拟机中安装linux系统,然后在里面完成项目的开发的。这种方式往往需要经常的和windows之间进行文件的传...

VMware中三种网络连接的区别

VMware中三种网络连接的区别

1、概述大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡——VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络;VMnet8是NAT网卡,用于NAT方式连接网络的...

自定义 sudo 在你输入错误的密码时嘲讽信息

自定义 sudo 在你输入错误的密码时嘲讽信息

你可以在上面的文件中定义 sudoers 嘲讽或其他选项。它在 defaults 部分下设置。在本文中,我们将解释一个 sudoers 配置参数,以允许个人或系...

创建交换分区的两个命令

创建交换分区的两个命令

交换分区在物理内存(RAM)被填满时用来保持内存中的内容。当 RAM 被耗尽,Linux 会将内存中不活动的页移动到交换空间中,从而空出内存给系统使用。虽然如此,但交换空间不应被认为是物理内...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。