NGINX服务器不代理服务器

时间:2016-11-20 03:39:23

标签: nginx proxypass

我要代理一个使用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/*;
}

站点启用/默认

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时,它只是谷歌。任何人都可以解释发生了什么以及为什么没有正确代理?

2 个答案:

答案 0 :(得分:1)

你有两台服务器

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

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

答案 1 :(得分:0)

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

所以你必须在端口8081上运行另一台服务器。当你拨打localhost:80时,你在8081上呼叫它。

编辑:mysite只是内部后端集合(upstream)的nginx的别名。您无法从浏览器中呼叫http://mysite。而只需致电http://localhost