AWS EC2实例-Nginx返回403禁止



我试图设置nginx,但nginx似乎没有权限做它必须做的事情。

我正在运行一个EC2实例,它提供了一个带有Node.js后端的React前端。

/var/log/nginx/error.log:

2022/11/01 02:01:24 [error] 2426#2426: *4 "/home/ubuntu/apps/myapp-frontend/index.html" is forbidden (13: Permission denied), client: the.client.ip, server: the.server.ip, request: "GET / HTTP/1.1", host: "the.server.ip"

我在nginx.conf中唯一更改的内容(因为它是目录的正确所有者(:

user ubuntu;

我这样检查所有者:

sudo ls -l /home/ubuntu/apps/myapp-frontend/

并得到:

total 1960
-rw-rw-r--    1 ubuntu ubuntu      21 Oct 31 20:28 README.md
drwxrwxr-x 1096 ubuntu ubuntu   36864 Oct 31 20:37 node_modules
-rw-rw-r--    1 ubuntu ubuntu 1431930 Oct 31 20:29 package-lock.json
-rw-rw-r--    1 ubuntu ubuntu    1203 Oct 31 20:28 package.json
drwxrwxr-x    2 ubuntu ubuntu    4096 Oct 31 20:28 public
-rw-rw-r--    1 ubuntu ubuntu   30795 Oct 31 20:28 react-jwt-authentication-flow.png
-rw-rw-r--    1 ubuntu ubuntu   17260 Oct 31 20:28 react-jwt-authentication-project-overview.png
drwxrwxr-x    6 ubuntu ubuntu    4096 Oct 31 20:28 src
-rw-rw-r--    1 ubuntu ubuntu  462013 Oct 31 20:29 yarn.lock

/etc/nginx/sites-available/myserver(这就是全部(:

server {
listen 80;
listen [::]:80;
root /home/ubuntu/apps/myapp-frontend;
index index.html index.htm index.nginx-debian.html;
server_name website.ip.address;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:8080;
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;
}
}

你知道我做错了什么吗?

SELinux已禁用。

编辑:正如您所看到的,React应用程序文件夹中没有index.html文件,但这就是它在本地构建和工作的方式。

您必须首先运行npm run build,然后将nginx指向新创建的构建目录

server {
listen 80;
listen [::]:80;
root /home/ubuntu/apps/myapp-frontend/*build*;
index index.html index.htm index.nginx-debian.html;
server_name website.ip.address;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:8080;
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;
}
}

最新更新