Nginx 反向代理至许多本地服务器 + Web 服务器职责

Nginx 反向代理至许多本地服务器 + Web 服务器职责

我目前必须掌握一个困难的设置:我希望 nginx 提供 webcontent 并深度重定向到本地主机(本地应用程序)上带有更改后的帖子的内容。我希望每个请求都使用 nginx 功能和 letsEncrypt 的认证来使用 https。

到目前为止我已经取得了很多成就:

a) 认证已启动并运行,运行良好(据我所知)b) 网络服务器运行良好c) 一个子域名运行良好,其他所有子域名均运行良好

但我还是个初学者,感谢您为我指出的每一个改进。我还注意到重定向很慢而且容易出错,但我无法指出原因 :/。

让我们看一下相当大的配置(我向您展示了我的启用站点的配置):

服务器 {

    # 让攻击者更难知道我们还活着

    听80;
    服务器名称 ””;
    返回444;
}

所以这不应该是我们的问题......

服务器 {

    # 公司主页

    如果 ($host = www.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    如果 ($host = website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    # 项目管理

    如果 ($host = pjm.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    # 组织发展看板

    如果 ($host = organization.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    如果 ($host = org.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    # Web 开发看板

    如果 ($host = development.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    如果 ($host = dev.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    # 营销开发看板

    如果 ($host = marketing.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    如果 ($host = mkt.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    # 销售发展看板

    如果 ($host = sales.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

    如果 ($host = sls.website.com) {
        返回 301 https://$host$request_uri;
    } # 由 Certbot 管理

  听80;
  服务器名称所有上述服务器名称均无失败;
    返回 404;#由 Certbot 管理
}

服务器 {
  服务器名称 website.com www.website.com;
  根/media/data/webserver/website.com;
  索引 index.html index.htm;
  地点 / {
        尝试文件$uri $uri/ =404;
    }

    listen 443 ssl; # 由 Certbot 管理
    ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理
    ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理
    包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理
}

这个好像也挺常用的,所以我觉得还可以(是吗?)。网站运行很顺畅,这里没有问题。

现在进行反向代理的配置:

服务器 {
  服务器名称 pjm.website.com;
  地点 / {

    proxy_set_header 主机 $host;
    proxy_set_header X-真实IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # 修复“看来你的反向代理设置已损坏”错误。
    代理通过 http://localhost:1030;
    代理读取超时90;

    代理重定向 http://localhost:1030 https://pjm.website.com;
  }

    listen 443 ssl; # 由 Certbot 管理
    ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理
    ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理
    包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理
}

PJM 服务也可用。但是它很慢,有时应用程序会提示您重新加载。...

服务器 {
  服务器名称组织.website.com;
  地点 / {

    proxy_set_header 主机 $host;
    proxy_set_header X-真实IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # 修复“看来你的反向代理设置已损坏”错误。
    代理通过 http://localhost:1030/ORG/ST;

    代理读取超时90;
    代理重定向 http://localhost:1030/ORG/ST https://organization.website.com;
  }

    listen 443 ssl; # 由 Certbot 管理
    ssl_certificate /etc/letsencrypt/live/website.com/fullchain.pem; # 由 Certbot 管理
    ssl_certificate_key /etc/letsencrypt/live/website.com/privkey.pem; # 由 Certbot 管理
    包括 /etc/letsencrypt/options-ssl-nginx.conf; #由 Certbot 管理
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 由 Certbot 管理
}

但是这项服务不起作用。不过,我可以通过访问 pjm 并逐步完成操作来获得它,这很繁琐。

如何解决这一问题?

相关内容