一个域名、端口、nginx配置的问题

现有条件

已知我有:

  1. 域名 domain.com
  2. 家里的一台主机,装了 windows server 2019,内网 ip 是 192.168.1.50,外网 ip 是 10.1.1.1。
  3. 服务器下的虚拟机 centos,内网 ip 是 192.168.1.51。

我在虚拟机中装了两个服务:

  1. gogs
    开启服务到 127.0.0.1:3000。
  2. jenkins
    开启服务到 127.0.0.1:8080

我在域名中配置了两条解析:
jenkinsci,A 记录,10.1.1.1
gogs,A 记录,10.1.1.1

我在路由器中配置了两条端口转发,为了外网请求能访问到内网的服务。

一个域名、端口、nginx配置的问题

一个域名、端口、nginx配置的问题

我的 nginx 配置是

[root@MiWiFi-RA80-srv vhost]# cat gogs.conf
server {
    listen 3000;
    server_name gogs.domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

[root@MiWiFi-RA80-srv vhost]# cat jenkins.conf
server {
    listen 3003;
    server_name jenkinsci.domain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

目标是

在外网使用 jenkins.domain.com:3000 访问 gogs,访问 gogs.domain.com:3003 访问 jenkins。除了上述端口和域名的组合,访问其他的地址都报404。

问题是

在外网使用 gogs.domain.com:3003 也能访问到 jenkins,使用 jenkins.domain.com:3000 也能访问到 gogs。换言之,我配置的域名没有用,具体访问了哪个服务只跟端口有关系。

请问各位大佬,我是哪里配置出问题了,具体要怎么修改,能达到我想要的效果呢?

从前从前,有个人爱你很久
thebestxt
讨论数量: 1

listen 80或443就可以了吧,你这已经是代理了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!