我有一些静态文件,我已经可以访问了,而且我已经在数字海洋上有一个api。
但我正在配置NGINX以同时访问两者。如果我的api工作,静态文件不会。反之亦然;
我的api正在端口5000上运行,我想通过IP地址访问该网站和api。
请帮助!
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
server {
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
答案 0 :(得分:1)
如果从同一IP地址和端口访问两个服务,则需要使用一个server
块。理想情况下,您可以将API移动到唯一的URI中,例如:
location / {
try_files $uri $uri/ =404;
}
location /api/ {
proxy_pass ...;
...
}
如果必须对静态文件和API使用重叠的URI空间,可以先使用try_files
检查是否存在静态文件:
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_pass ...;
...
}
有关详情,请参阅this document。