首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Localhost NGINX服务器返回403禁止,但在主机上工作。

问Localhost NGINX服务器返回403禁止,但在主机上工作。
EN

Server Fault用户
提问于 2023-02-01 15:18:29
回答 2查看 536关注 0票数 0

我有一个NGINX安装程序,在我的本地网络上提供一个React应用程序和一个API,带有一个由letsencrypt生成的有效SSL证书。

我的域名由domain.com提供,我将它称为mydomain.com

我的应用程序在主机上工作得很好(目前我的笔记本电脑),但当我试图在移动(连接到同一个网络)上打开它时,它会返回403个禁止的错误。

我的配置文件中是否有错误,或者您能告诉我是什么原因造成的吗?

/etc/nginx/sites-enabled/mydomain.com:

代码语言:javascript
复制
server {

    server_name mydomain.com;
    root /home/build;
    index index.html index.htm;

    listen 443 ssl;

    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;

    location /api {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header x-forwarded-proto https;
        proxy_cache_bypass $http_upgrade;
    }

    location / {
        try_files $uri $uri/ =404;
    }
}

/etc/hosts:

代码语言:javascript
复制
...
127.0.1.1   mydomain.com
EN

回答 2

Server Fault用户

发布于 2023-02-01 15:50:48

Localhost是指回送地址。这实际上不同于你在家里可能拥有的本地网络。

我认为问题在于,您不能将外部流量定向到本地主机。相反,您需要将服务器托管到0.0.0.0 (所有ip地址)或本地ip地址(可能是192.168.x.x),以便使用另一个设备访问站点。

指定in /etc/host会告诉您的笔记本电脑,到您的域的通信应该被路由到本地主机,但是您的手机无法读取此信息。

票数 1
EN

Server Fault用户

发布于 2023-02-01 16:30:02

如果您试图从移动设备访问domain.com,并且您无法控制domain.com的DNS,则除非您的内部DNS服务器解析了该DNS记录(例如FritzBox),否则设备将无法正确解析主机名。因此,您需要创建一个DNS记录,您的移动设备可以解析。

在这种情况下,您应该为您的开发任务(如dev.domain.com IN A 192.168.1.1 )创建一个DNS记录,其中192.168.1.1是您的笔记本电脑的本地网络地址。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1121704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档