在基于 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-thing 之类的包)。
- 添加一个文件
/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
按照上面的方式进行操作,浏览器中显示的 url 将自动更改为重写后的 url。
- 如果您希望向用户显示的 url 保持“mydomain.com/page1”,您需要使用proxy_pass -directive 而不是 rewrite(这种设置的关键字是reverse proxy)
- 您使用 $scheme:// 而不是 $http:// 因为如果您稍后也让该虚拟主机在 https:// 上收听,它不会破坏这种方式