nginx 无法访问本地子域

a8jjtwal  于 2023-02-21  发布在  Nginx
关注(0)|答案(1)|浏览(158)

首先,我使用的是mac os,我修改了/etc/hosts,使其看起来像这样:

127.0.0.1 locaserver.com
127.0.0.1 api.locaserver.com
127.0.0.1 images.locaserver.com

当我运行nginx(安装了brew)时,我修改了/opt/homebrew/etc/nginx/nginx.conf,使其具有以下内容:

http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 20M;
    sendfile        on;
    keepalive_timeout  65;
    error_log  /var/log/nginx/error_log;

    server {
        listen       8080;
        server_name  images.locaserver.com www.images.locaserver.com;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-for $remote_addr;
                proxy_pass http://localhost:8083;
        }
    }
    server {
        listen       8080;
        server_name  locaserver.com www.locaserver.com;
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-for $remote_addr;
        }
    }

    server {
        listen       8080;
        server_name  api.locaserver.com;
        location / {
            client_max_body_size 20M;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-for $remote_addr;
            proxy_pass http://localhost:8081;
        }
    }
    include servers/*;
}

我在端口3000上运行了一个react应用程序,在端口8081(API)上运行了一个nodejs。在我添加www.example.com的新条目之前images.locaserver.com,一切都按预期运行。所以当我进入locaserver.com:8080时,我看到了react应用程序。当react应用程序向API发出请求时,它在http://api.locaserver.com:8080上执行。
因此,当我创建一个新的node-app(images.locaserver.com在端口8083上)时,API仍然可以工作。但是,访问images.locaserver.com的唯一方法是直接访问端口号:

http://localhost:8083/
or even
http://images.locaserver.com:8083/
both work

出了什么问题?我试图将www.example.com的条目移动images.locaserver.com到第一个服务器,但没有帮助。当我转到http://images.locaserver.com:8080时,react应用程序将接管显示页面。
我查看了日志,但没有显示错误,因为它实际上是服务于页面(虽然是react页面)。

相关问题