ubuntu - 如何在保持相同 url 的情况下代理 nginx 请求

标签 ubuntu nginx servicestack

我正在使用具有此配置的自托管服务堆栈应用程序。因此,当我浏览 mysite.com/json/reply/mytestmethod 时,我会被重定向到 mysite.com:1337/json/reply/mytestmethod。该应用程序工作正常,除了寻求帮助以删除端口 1337 部分并使其看起来来自 mysite.com 域。

干杯!

server {
  listen 80;
  server_name mysite.com;

  root /var/www/mysite.com/html;
  index index.html;

  location / {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   Host      $http_host;
    proxy_pass         http://127.0.0.1:1337;
  }
}

最佳答案

如果您想删除端口,您需要使用反向代理而不是重定向。在 nginx 中,典型的反向代理配置如下所示:

server {
    listen 80;
    server_name mysite.com;

    location / {
        proxy_pass http://localhost:1337/;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
    }
 }

关于ubuntu - 如何在保持相同 url 的情况下代理 nginx 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104990/

相关文章:

nginx - docker pull push 登录成功后无法正常工作

c# - ServiceStack.Text 将 json 反序列化为对象总是转换为字符串并且使用引号时行为异常

ubuntu - 菜单未出现在 VSCode 应用程序中 [ed] 0.10.3 Linux Ubuntu 15.10

linux - ubuntu Linux 中 ejabberd 的 AWS 自定义 TCP 端口访问?

java.sql.SQLException : Opening db :'DB-NAME.sqlite' : Permission denied

servicestack - 带有 ServiceStack 的 BreezeJS?

design-patterns - 使用 ServiceStack 在 "per object per user"基础上控制权限的最佳设计模式?

java - 找到每个本地 Eclipse 工作区

nginx - "jrcs/letsencrypt-nginx-proxy-companion" docker 镜像 : too many certificates already issued for exact set of domains

Nginx Controller 客户端身份验证 optional_no_ca 不起作用