我不知道如何重定向/到index.html. 我已经浏览了 serverfault 上的线程,我想我已经尝试了所有建议,包括:
location /index index.html在server级别、location /静态内容内和静态内容内node.js委托书移至location ~ /i而不是内部location /显然,我的配置中的其他地方出了问题。这是我的 nginx.conf:
worker_processes 1;
pid /home/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
error_log /home/logs/error.log;
access_log /home/logs/access.log combined;
include sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)
和我的服务器配置位于启用站点
server {
root /home/www/public;
listen 80;
server_name localhost;
# proxy request to node
location / {
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3010;
proxy_redirect off;
break;
}
# static content
location ~ \.(?:ico|jpe?g|jpeg|gif|css|png|js|swf|xml|woff|eot|svg|ttf|html)$ {
access_log off;
add_header Pragma public;
add_header Cache-Control public;
expires 30d;
}
gzip on;
gzip_vary on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
}
Run Code Online (Sandbox Code Playgroud)
其他一切都工作得很好。请求被正确代理到节点并正确提供静态内容。我只需要能够转发到的请求/来/index.html。
Pot*_*thu 10
基本上,root指令(在 location 块内)没有提到完整路径。此外,指令;末尾缺少a index(可能是拼写错误,nginx 通常会捕获这些拼写错误)。
因此,位于启用站点的服务器配置将如下所示(在上述两个更改之后)...
服务器 {
根 /home/www/public;
听80;
server_name 本地主机;
index index.html index.htm;
# 代理请求节点
位置@proxy {
proxy_set_header 主机 $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3010;
proxy_redirect 关闭;
休息;
}
地点 / {
try_files $uri $uri/ @proxy;
}
# 其余配置
# ...
# ...
}