我在前面有Nginx的服务器和运行reactjs应用程序的nodejs,我的应用程序被分成几个部分,我希望每个部分都有自己的子域。 例如:
http://192.168.1.1:9000/part1/ ---> http://sub1.example.com/
http://192.168.1.1:9000/part2/ ---> http://sub2.example.com/
我做了类似的事情:
server {
listen 80;
server_name sub1.example.com;
root html;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:9000/part1/;
}}
服务器在我使用此配置时工作,但是当我打开浏览器时,我遇到了错误,告诉我静态内容的问题。
服务器尝试从http://127.0.0.1:9000/part1/
获取静态内容感谢您的帮助。
答案 0 :(得分:0)
根据您的信息,这样的事情可能会起作用(显然重复两个子域名)
server {
listen 80;
server_name sub1.example.com;
root /home/usr/react/app/build/static;
index index.html index.htm;
location / {
try_files $uri $uri/ @nodejs;
}
location @nodejs {
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:9000/part1;
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
<强>解释强>
在这种情况下,我们首先尝试找到静态文件(如果存在)
try_files $uri $uri/ @nodejs;
如果不存在匹配的文件,那么请求将被代理到路径/part1
上的Node.js服务器
proxy_pass http://nodejs/part1;