Redirect 配置/etc/nginx/nginx.conf以重定向到单独的主机

Redirect 配置/etc/nginx/nginx.conf以重定向到单独的主机,redirect,ubuntu,nginx,Redirect,Ubuntu,Nginx,有人知道如何修改nginx.conf文件以重定向到另一台主机吗?我想在本地网络上引导和分离主机。mydomain.com/page1应转到10.100.0.163,mydomain.com/page2应转到10.100.0.164 下面是我添加到Ubuntu服务器上nginx.conf文件的HTML部分的内容 location /page1/ { rewrite ^/page1/(.*)$ http://10.100.0.163/$1 permanent; } location /page2/

有人知道如何修改nginx.conf文件以重定向到另一台主机吗?我想在本地网络上引导和分离主机。mydomain.com/page1应转到10.100.0.163,mydomain.com/page2应转到10.100.0.164

下面是我添加到Ubuntu服务器上nginx.conf文件的HTML部分的内容

location /page1/ {
rewrite ^/page1/(.*)$ http://10.100.0.163/$1 permanent;
}

location /page2/ {
rewrite ^/page2/(.*)$ http://10.100.0.164/$1 permanent;
}
是否还有其他需要添加到nginx.conf文件中的内容?是否还有其他配置文件需要修改


我刚刚完成了nginx的标准安装,没有改变任何其他内容。

在基于Debian的发行版(包括Ubuntu)上,nginx需要考虑以下因素(apache软件包使用类似的布局):

  • /etc/nginx/nginx.conf
    是主配置文件
  • 主配置文件包括
    /etc/nginx/conf.d
    /etc/nginx/sites enabled
  • /etc/nginx/conf.d/
    是向主配置添加内容的地方。
    • 如果nginx以外的任何包添加了配置,那么这些配置将位于
      /etc/nginx/conf.d/
      (想想像gitweb或一些php之类的包)
    • 在其中添加文件
      /etc/nginx/conf.d/local
      /etc/nginx/conf.d/local\u something
    • 通过这样的分离,可以很容易地确定潜在的问题在哪里
  • /etc/nginx/sites enabled/
    用于添加虚拟主机所需的配置,每个虚拟主机一个文件。通过分离虚拟主机,可以更容易地知道在何处进行更改/修复(如您所知,自动忽略与vhost无关的所有内容)
  • /etc/nginx/sites available/
    是软件包为想要添加的vhost设置配置的地方。这些不是自动激活的,要启用此类站点,您需要将其链接或复制到
    /etc/nginx/sites enabled/
由于要添加的内容特定于
mydomain.com
虚拟主机,因此应将它们添加到
/etc/nginx/sites enabled/mydomain.com
。其内容应如下所示:

server{
  server_name mydomain.com;

  location /page1/ { rewrite ^/page1/(.*)$ $scheme://10.100.0.163/$1 permanent; }
  location /page2/ { rewrite ^/page2/(.*)$ $scheme://10.100.0.164/$1 permanent; }

  #add config needed to server whatever else on 
  #location / {}
}
关于该配置的注意事项:

  • 如果您使用如上所述的
    重写
    ,浏览器中显示的url将自动更改为重写的url
  • 如果希望显示给用户的url保持为“mydomain.com/page1”,则需要使用-指令而不是重写(这种设置的关键字是反向代理)
  • 您可以使用$scheme://而不是$http://因为如果以后在https://上也有vhost侦听,它不会以这种方式中断

您的意思是它从主机B提取数据,同时仍显示主机A的url吗?因为如果是这样,谷歌“nginx反向代理”感谢您的建议。我将使用您建议的服务器功能在sites enabled文件夹中创建一个名为“mydomain.com”的文件。这是你唯一建议我做的事吗?我是否还需要向其他nginx配置文件中添加一些内容,以便它知道该虚拟主机存在?如果查看/etc/nginx/nginx.conf,您会注意到它的行
include/etc/nginx/sites enabled/*使其拾取站点启用文件夹中的任何文件(注意:nginx仅在重新启动或重新加载时注意配置的更改,因此您确实需要执行
服务nginx重新加载
)。你不需要为你所描述的做任何事情