首先,我使用的是mac os,我修改了/etc/hosts,使其看起来像这样:
127.0.0.1 locaserver.com
127.0.0.1 api.locaserver.com
127.0.0.1 images.locaserver.com
当我运行nginx(安装了brew)时,我修改了/opt/homebrew/etc/nginx/nginx.conf,使其具有以下内容:
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 20M;
sendfile on;
keepalive_timeout 65;
error_log /var/log/nginx/error_log;
server {
listen 8080;
server_name images.locaserver.com www.images.locaserver.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_pass http://localhost:8083;
}
}
server {
listen 8080;
server_name locaserver.com www.locaserver.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
}
}
server {
listen 8080;
server_name api.locaserver.com;
location / {
client_max_body_size 20M;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_pass http://localhost:8081;
}
}
include servers/*;
}
我在端口3000上运行了一个react应用程序,在端口8081(API)上运行了一个nodejs。在我添加www.example.com的新条目之前images.locaserver.com,一切都按预期运行。所以当我进入locaserver.com:8080时,我看到了react应用程序。当react应用程序向API发出请求时,它在http://api.locaserver.com:8080上执行。
因此,当我创建一个新的node-app(images.locaserver.com在端口8083上)时,API仍然可以工作。但是,访问images.locaserver.com的唯一方法是直接访问端口号:
http://localhost:8083/
or even
http://images.locaserver.com:8083/
both work
出了什么问题?我试图将www.example.com的条目移动images.locaserver.com到第一个服务器,但没有帮助。当我转到http://images.locaserver.com:8080时,react应用程序将接管显示页面。
我查看了日志,但没有显示错误,因为它实际上是服务于页面(虽然是react页面)。
1条答案
按热度按时间qmb5sa221#
重新启动计算机解决了问题。