Skip to content
本页目录

nginx 配置

作用:按顺序检查文件是否存在 解决:404问题

sh
location / {
    try_files $uri $uri//index.html
}

config:配置多个项目

sh

#user  nobody; 
#1、定义Nginx运行的用户和用户组
#user qs js

# nginx进程数,建议设置为等于CPU总核心数.
worker_processes  1;

# 全局错误日志定义类型
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

# 进程文件
#pid        logs/nginx.pid;


# Nginx.config配置

events {
    #   #设置工作模式为epoll,除此之外还有select,poll,kqueue,rtsig和/dev/poll模式
    # use epoll;
    #单个进程最大连接数(最大连接数=连接数*进程数)65535;
    worker_connections  1024;
}

http {
    # 主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度
    include       mime.types;  
    default_type  application/octet-stream; 
	#默认文件类型  #核心模块指令,默认设置为二进制流,也就是当文件类型未定义时使用这种方式

    #charset utf-8; #默认编码
    # server_names_hash_bucket_size 128; #服务器名字的hash表大小
    # client_header_buffer_size 32k; #上传文件大小限制
    # large_client_header_buffers 4 64k; #设定请求缓
    # client_max_body_size 8m; #设定请求缓


     #下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #引用日志main格式
    #access_log  logs/access.log  main;
    #开启高效文件传输模式
    sendfile        on;
     #开启防止网络阻塞
    # tcp_nopush     on;
    #开启防止网络阻塞
    # tcp_nodelay    on;

    #keepalive_timeout  0;  120; # (单位s)   设置客户端连接保持活动的超时时间,在超过这个时间后服务器会关闭该链接
    keepalive_timeout  65;

    server {
         #单连接请求上限次数
        keepalive_requests 120; 
        listen       8001;             
		# 监听端口
        # 域名可以有多个,用空格隔开 (监听地址,可以是ip,最好是域名)
        server_name  localhost;
        #charset koi8-r;
	
        #解决404
         #try_files $uri $uri/ /index.html;
        #access_log  logs/host.access.log  main;
        # 设置虚拟主机访问日志的存放路径及日志的格式为main
        # access_log  /www/wwwlogs/111.222.333.123.log main; #响应日志
        # error_log  /www/wwwlogs/111.222.333.123.log main; #错误日志  



        #设置主机基本信息
        #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
		# 前端访问的路径 ip:8001/front
        #  location  ~*^.+$ {
        location ^~ /devApi {
            	#根目录
            alias  D:\xxx\xx\xxx\xxx\dist;
		    #设置默认页
			index index.html index.htm;
			try_files $uri $uri/ /front/index.html;

			
		    error_page 405 =200 http://$host$request_uri;
            # deny 127.0.0.1;  拒绝的ip 黑名单
            #allow 172.18.5.54; 允许的ip,白名单

            	# 允许跨域的请求,可以自定义变量$http_origin,*表示所有
                add_header 'Access-Control-Allow-Origin' *;
                # 允许携带cookie请求
                add_header 'Access-Control-Allow-Credentials' 'true';
                # 允许跨域请求的方法:GET,POST,OPTIONS,PUT
                add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT';
                # 允许请求时携带的头部信息,*表示所有
                add_header 'Access-Control-Allow-Headers' *;
                # 允许发送按段获取资源的请求
                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
                # 一定要有!!!否则Post请求无法进行跨域!
                # 在发送Post跨域请求前,会以Options方式发送预检请求,服务器接受时才会正式请求
                if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain; charset=utf-8';
                add_header 'Content-Length' 0;
                # 对于Options方式的请求返回204,表示接受跨域请求
                return 204;
    
		    }
			
        }
		#  访问前端的路径设置
		location ^~ /xxx-prod {
			#根目录
			alias '目录;
			#设置默认页
			index index.html index.htm;
		    try_files $uri $uri/ /H-prod/index.html;
		    error_page 405 =200 http://$host$request_uri;
	    }

		# 访问后端代理的路径 ip:8001/prod-api 
		location ^~ /prod-api {
			rewrite  ^/prod-api/?(.*)$ /$1 break;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://192.168.1.200:8080;
			
		}	

         #访问异常页面配置
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
     
    }

}