NGINX 服务器不代理服务器

NGINX server not proxying to server

我正在尝试代理一个使用 npm http-server 模块提供服务的测试项目,如下所示:

http-server -p 8081.

我有以下nginx配置。

nginx.conf

user  www-data;
worker_processes  4;

events {
    worker_connections  7684;
}  


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    include /etc/nginx/sites-enabled/*;
}

sites-enabled/default

upstream mysite {

    server 127.0.0.1:8081;

}

server {

    listen 80;
    listen [::]:80;

    location / {
            proxy_pass http://mysite;
}

当我点击 localhost 时,它起作用了。当我点击 localhost:8081 时,它起作用了。但是,当我输入 http://mysite 时,控制台会给我一个 ERR_NAME_NOT_RESOLVED 错误。当我输入 mysite 时,它只是用谷歌搜索。任何人都可以解释发生了什么以及为什么它没有被适当地代理吗?

您有两台服务器

  • 本地主机:8081
  • 本地主机:80

mysite - 它只是平衡方法 nginx 的名称。

使用 server.listen 80,您可以在端口 80 上创建一个本地服务器。所有请求 (location /) 都被重定向 (proxy_pass) 到 mysitemysite 在端口 8081 上的本地主机上。

因此您必须 运行 端口 8081 上的另一台服务器。当您调用 localhost:80 时,您是在 8081 上调用它。

编辑:mysite 只是 nginx 内部后端集合的别名 (upstream)。您不能调用 http://mysite from your browser. Instead just call http://localhost.