【发布时间】:2020-11-14 04:09:54
【问题描述】:
这里令人沮丧的问题。我在必须使用 Nginx 进行外部连接/HTML 服务器的服务器上使用 created-react-app 创建了一个反应项目。本质上我需要做的是使用 nginx 作为代理服务器,当在浏览器中输入 URL 时,请求被路由到 localhost:3000,react 应用程序生成结果,由 nginx 提供给客户端。
所以,到目前为止,这是 nginx 文件,但我无法让它工作。一些问题:
-
是否需要将root指定到react项目中的/public目录才能提取index.html?
-
假设你运行
npm start,编译后在浏览器中输入FQDN,它会路由到localhost:3000
到目前为止我的 Nginx 配置
server_name server-name.com;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/site-name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site-name/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
proxy_read_timeout 60s;
client_max_body_size 64M;
# should this be routed to /public in the react project to pick up index.html?
# root /var/www/html;
index index.html index.htm;
location / {
#try_files $uri $uri/ =404;
# Make sure React Application return is index.html so client routing remains in sync/reachable
#try_files $uri /index.html;
proxy_pass http://localhost:3000;
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;
}
location /_api {
rewrite ^/_api/(.+) /$1 break;
include uwsgi_params;
uwsgi_pass 127.0.0.1:3030;
}
}
server {
server_name server-name.com
listen 80;
allow 10.0.0.0/16;
deny all;
proxy_read_timeout 60s;
client_max_body_size 64M;
# Should this be routed to /public in the react project to pick up index.html?
# root /var/www/html;
index index.html index.htm;
location / {
#try_files $uri $uri/ =404;
# Make sure React Application return is index.html so client routing remains in sync/reachable
try_files $uri /index.html;
}
location /_api {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3030;
}
}
【问题讨论】:
标签: node.js reactjs nginx create-react-app nginx-config