【发布时间】:2017-08-14 08:42:15
【问题描述】:
我有 2 台服务器, 第一个包含 2 个网站(位于 2 个单独的目录中):
第二台服务器在根文件夹(React 网站)中包含 1 个网站。 能否请您帮我在第一台服务器上设置 nginx,使其在用户访问https://example.com 时指向第二台服务器。
【问题讨论】:
标签: nginx
我有 2 台服务器, 第一个包含 2 个网站(位于 2 个单独的目录中):
第二台服务器在根文件夹(React 网站)中包含 1 个网站。 能否请您帮我在第一台服务器上设置 nginx,使其在用户访问https://example.com 时指向第二台服务器。
【问题讨论】:
标签: nginx
由于nginx 将在port 80 中运行,因此您需要将web hosting content 运行到另一个port,例如您的第一台服务器的端口3000。
在您的nginx.config 文件中,您需要创建一个upstream,在其中列出 nginx 需要重新路由到的服务器:(在对文件进行更改之前,我建议您制作一份它)
events {
worker_connections 768;
# multi_accept on;
}
upstream server_banks {
server localhost:3000; # if not localhost put the ip of the server
server second_server_ip:portNumber;
}
server { # nginx service will operate on port 80
listen 80;
server_name example.com
# it could your first server's ip or example.com if the domain is associated with that ip
location / {
proxy_pass http://server_banks;
}
}
保存配置后,重新加载服务&&重启
【讨论】:
你需要同时在 server2 和 server2 上运行 nginx,然后设置 nginx 配置如下
在服务器 1 上
#####server1####
server {
listen 443;
server_name example.com;
location / {
proxy_pass http://second_server_ip:80;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
location /site1 {
alias /path/to_site1_dir/;
}
location /site2 {
alias /path/to_site2_dir/;
}
}
在服务器 2 上
###Server2#####
server {
listen 80;
server_name localhost;
root /path/to_site_dir_for-server2;
location / {
}
}
【讨论】: