【发布时间】:2018-11-23 03:09:52
【问题描述】:
在尝试了几天后,我陷入了困境,我需要一些帮助。
我有一个运行良好的蒸汽 API。我创建了一个路由,可以在服务器上的浏览器中从http://localhost:8080/backend/returnA 访问它。它返回一些 JSON。
我遇到的困难是尝试将 Nginx 配置为服务器作为代理。谁能帮我理解http://localhost:8080/backend/returnA URL 是如何转换为可从 LAN 访问的有效 URL 的?
我很困惑,因为 Nginx.conf 要求输入根 URL,但我不知道该输入什么。如果我将其留空,则默认为 /usr/local/Cellar/nginx/1.15.6/ html/backend/returnA/index.html 这显然行不通。如果我将它设置为 Vapor 应用程序目录中的公用文件夹,这也不起作用。在这两种情况下,我都会收到“没有这样的文件或目录”。
我在网上找到了无数的 Nginx conf 设置,尝试添加代理位置,但没有任何效果。尝试http://172.16.1.25/backend/returnA/ 总是从 Nginx 服务器返回 404。
当 Nginx 不提供像 index.html 这样的静态文件,而是重新调整 JSON 时,如何将 Nginx 指向我的 Vapor 路由?
非常感谢任何帮助。
这是配置,已编辑以包含 Thanh 的代码,旧位置已注释掉:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
server_name 172.16.1.25;
listen 80 default_server;
root /Users/localadmin/Developer/server/MedicapAPI/Public/;
# location @proxy {
# proxy_pass http://127.0.0.1:8080;
# proxy_pass_header Server;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_pass_header Server;
# proxy_connect_timeout 3s;
# proxy_read_timeout 10s;
# }
location / {
proxy_ignore_client_abort on;
proxy_pass http://localhost:8080/;
proxy_redirect off;
}
}
include servers/*;
}
【问题讨论】:
-
你能分享一下你在这里试过的
nginx.conf文件的内容吗? -
抱歉,已修复。
-
请检查答案@rougement,刚刚编辑