Node.js 静态内容nodejs应用程序反向代理的NgInx禁止错误
我正在为我的expressjs网站使用带有HTTPS的NgInx反向代理。网站是通过https访问的,没有任何问题,请求是在Nodejs服务器上获得的,但问题是静态内容 所有静态内容(JS、CSS、图像、字体等)都会抛出403禁止的错误 以下是我的ngInx配置文件内容:Node.js 静态内容nodejs应用程序反向代理的NgInx禁止错误,node.js,nginx,amazon-ec2,https,proxy,Node.js,Nginx,Amazon Ec2,Https,Proxy,我正在为我的expressjs网站使用带有HTTPS的NgInx反向代理。网站是通过https访问的,没有任何问题,请求是在Nodejs服务器上获得的,但问题是静态内容 所有静态内容(JS、CSS、图像、字体等)都会抛出403禁止的错误 以下是我的ngInx配置文件内容: server { listen 80; listen 443 ssl; ssl on; ssl_certificate /home/ec2-user/certs/myapp.bundle.cr
server {
listen 80;
listen 443 ssl;
ssl on;
ssl_certificate /home/ec2-user/certs/myapp.bundle.crt;
ssl_certificate_key /home/ec2-user/certs/myapp.key;
root /home/ec2-user/myapp;
server_name example.com;
access_log /var/log/nginx/nginx.vhost.access.log;
error_log /var/log/nginx/nginx.vhost.error.log;
location / {
#try_files $uri $uri/ /index.php?$args ;
#try_files $uri $uri/ =404;
proxy_pass https://example.com: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;
}
}
我正在使用AmazonEC2和CentOS。
请帮忙。提前谢谢
location / {
proxy_pass https://example.com: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;
}
您正在将所有流量重定向到nodejs。这意味着expressjs将提供静态内容
要提供静态文件,请使用express中的express.static内置中间件功能
将包含静态资产的目录的名称传递给express.static middleware函数,以开始直接为文件提供服务。例如,使用以下代码为名为public的目录中的静态文件提供服务:
app.use(express.static('public'))
更多信息请点击此处:
您正在将所有流量重定向到nodejs。这意味着expressjs将提供静态内容
要提供静态文件,请使用express中的express.static内置中间件功能
将包含静态资产的目录的名称传递给express.static middleware函数,以开始直接为文件提供服务。例如,使用以下代码为名为public的目录中的静态文件提供服务:
app.use(express.static('public'))
此处的更多信息:您正在尝试从NodeJS应用程序服务器静态文件,这不是正确的方法,因为您使用的是Nginx。在配置中添加以下类型的块
location ~ \.(css|gif|png|jpe?g|ico|js|swf|ttf|woff) {
expires 30d;
root /home/ec2-user/myapp;
try_files $uri =404;
}
您可能需要根据使用资产的方式调整根文件夹。但是如果您使用的是与
/home/ec2 user/myapp
相同的代码,那么您可以跳过添加这一行您正在尝试从您的NodeJS应用程序服务器静态文件,这不是正确的方法,因为您使用的是Nginx。在配置中添加以下类型的块
location ~ \.(css|gif|png|jpe?g|ico|js|swf|ttf|woff) {
expires 30d;
root /home/ec2-user/myapp;
try_files $uri =404;
}
您可能需要根据使用资产的方式调整根文件夹。但是如果您使用的是与
/home/ec2 user/myapp
相同的内容,那么您可以跳过添加这一行您是通过节点服务器还是ngnix提供静态内容?我尝试了从express和nginx提供静态内容的两种方式。您是通过节点服务器还是ngnix提供静态内容?我尝试了两种方式提供静态内容我已经在使用express.static中间件了。但是我想提供NgInx的静态内容。但是它给了我403禁止。我已经在使用express.static中间件了。但是我想提供NgInx的静态内容。但是它给了我403禁止。谢谢你的帮助。我尝试过这个,但它给出了403禁止静态内容。我还授予了755权限访问我的公用文件夹。请发布nginx日志中的完整错误。您还需要确保静态文件夹上方的所有父文件夹都已执行(chmod a+x)权限。谢谢您的帮助。我尝试过这个,但它给出了403禁止静态内容。我还授予了755权限访问我的公用文件夹。发布nginx日志中的完整错误。您还需要确保静态文件夹上方的所有父文件夹都具有执行(chmod a+x)权限