nginx代理后刷新显示404

nginx代理后刷新显示404_第1张图片
1、报错原因

原因是因为web单页面开发模式,只有一个index.html入口,其他路径是前端路由去跳转的,nginx没有对应这个路径,当然就是404了。

2、一般nginx监听配置

server {
        listen       9005;
        server_name  192.168.0.5;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   D:/hospitalPage/dist;
            index  index.html index.htm;
			#limit_rate 1280k; #限制速度
			client_max_body_size  100M;
			allow all;
            autoindex on;
			proxy_set_header X-Real-IP  $remote_addr;
			proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			add_header 'Access-Control-Allow-Headers' 'Content-Type';
            add_header 'Access-Control-Allow-Methods' 'GET';
            add_header 'Access-Control-Allow-Methods' 'POST';
            add_header 'Access-Control-Allow-Methods' 'DELETE';
			add_header 'Access-Control-Allow-Methods' 'PUT';
			add_header 'Access-Control-Allow-Credentials' 'true';
			add_header 'Access-Control-Allow-Origin' '*';
			proxy_connect_timeout       600s;
            proxy_read_timeout          600s;
            proxy_send_timeout          600s; 
            access_log off;
			break;
        }
				       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
     
    }

3、解决404配置

在配置中加上try_files,意思跟翻译差不多,“尝试读取文件”。

try_files $uri $uri/ /index.html;修改配置如下
1、如果是在根目录则配置如下

location / {
  root  /;
  index index.html;
  try_files $uri $uri/ /index.html
  	# 下面配置省略,同第二步
}

2.如果是有特定目录

location /xx/xx/ {
  root  /;
  index index.html;
  try_files $uri $uri/ /xx/xx/index.html
  	# 下面配置省略,同第二步
}
例如:
	location /payfor/ {
		root /home/web;
		index index.html;
		try_files $uri $uri/ /payfor/index.html;
      	# 下面配置省略,同第二步
	}


你可能感兴趣的:(笔记,nginx,前端,运维)