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

标签 redirect ubuntu nginx

有谁知道如何修改 nginx.conf 文件以重定向到另一台主机?我要直接http://mydomain.com/page1http://mydomain.com/page2分离本地网络上的主机。 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/<some-file>是您将添加内容添加到主配置中的位置。
    • 如果 nginx 之外的任何软件包添加配置,这些配置将位于 /etc/nginx/conf.d/<packagename> 中(想想像 gitweb 这样的包,或者一些 php 的东西)。
    • 添加文件 /etc/nginx/conf.d/local/etc/nginx/conf.d/local_something里面有您需要的任何补充。
    • 通过这样区分事物,可以轻松确定潜在问题所在。
  • /etc/nginx/sites-enabled/<some-file>是放置虚拟主机所需的配置添加的位置,每个虚拟主机 1 个文件。通过分离虚拟主机,可以更轻松地知道在哪里进行更改/修复(正如您所知,自动忽略与该虚拟主机不相关的所有内容)。
  • /etc/nginx/sites-available/是软件包放置它们想要添加的虚拟主机的配置的地方。 这些不会自动激活,要启用此类站点,您可以将其链接或复制到 /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 / {}
}

有关该配置的注释:

  • 如果您使用 rewrite 来执行此操作如上,浏览器中显示的网址将自动更改为重写后的网址
  • 如果您希望向用户显示的网址保留为“mydomain.com/page1”,则需要使用 proxy_pass -指令而不是重写(这种设置的关键字是反向代理)
  • 您使用 $scheme://而不是 $http://,因为如果您稍后也让该虚拟主机监听 https://,它不会破坏这种方式

关于redirect - 配置/etc/nginx/nginx.conf重定向到单独的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15034901/

相关文章:

JSF 过滤器在初始重定向后不重定向

redirect - 登录后环重定向

php - 为了站点安全,是否可以在文件和文件夹更改后实时监控其chmod值?

ubuntu - Gitlab-ci - 管道运行失败

performance - PHP5-FPM随机开始消耗大量CPU

wordpress - WordPress 中的 301 重定向循环

c# - WebRequest - 防止重定向

amazon-web-services - ls : cannot open directory '.' : Permission denied

nginx - 为什么 Brotli 命令行最多只允许 9 级?

docker - Nginx 容器不使用 nginx.conf 除非我重新启动容器