nginx 配置

一、nginx配置
server {
	listen       80;
	listen       12000;
	server_name  www.test.com;

    # 设置上传文件大小,0表示不限制
    client_max_body_size 0;
	
	# app站点
	location /api {
		proxy_pass http://127.0.0.1:11118/;
		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_set_header HTTP_X_FORWARDED_FOR $remote_addr;
		proxy_redirect off;
	}
	
	# 虚拟目录
	location /fui {
		proxy_pass http://192.168.1.69:10082/;
		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_set_header HTTP_X_FORWARDED_FOR $remote_addr;
		proxy_redirect off;
	}
	
	# 虚拟静态目录
	location /html {
		add_header 'Access-Control-Allow-Origin' '*';
		proxy_pass http://localhost:10000/;
		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_set_header HTTP_X_FORWARDED_FOR $remote_addr;
		proxy_redirect off;
	}
	
    #设置拦截跳转域名,拦截/v1/代理到 http://asp.xxx.com 域名下
	location /v1/ {
		proxy_pass     http://asp.gehouse.cn;
		proxy_redirect  off;
		#proxy_set_header  Host  $host;
        proxy_set_header  Host  $proxy_host;
		proxy_set_header  X-Real-IP  $remote_addr;
		proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
	}

    location / {
        root   /usr/local/server/front;
        index  index.html index.htm;
    }

}

引入多个配置文件

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    gzip  on;
    keepalive_timeout 5000;

    # 引入多个配置文件,当前目录conf.d下所有配置
    include conf.d/*.conf;
}

二、添加域名拦截的时候 

      proxy_pass     http://asp.xxx.com;

      不用设置 proxy_set_header  Host  $host; ,否则拦截报错404

      使用域名代理 需要设置 proxy_set_header  Host  $proxy_host; 或者不添加这个

      在使用Nginx做反向代理的时候,proxy_set_header功能可以设置反向代理后的http header中的host, 
      那么常用的几个设置中$proxy_host, $host,$http_host又都表示什么意思呢? 
      Nginx的官网文档中说下面这两条是做反代时默认的,所以$proxy_host 自然是 proxy_pass后面跟着的host了

       proxy_set_header Host       $proxy_host;
       proxy_set_header Connection close;

     如果客户端发过来的请求的header中有’HOST’这个字段时, 
     $http_host和$host都是原始的’HOST’字段 
     比如请求的时候HOST的值是www.csdn.net 那么反代后还是www.csdn.net

     如果客户端发过来的请求的header中没有有’HOST’这个字段时, 
     建议使用$host,这表示请求中的server name。
 

三、proxy_pass  URL末尾加与不加/(斜线)的区别

     1、proxy_pass 路径后面添加 “/” 则表示 location 拦截的路径前缀后面部分会被添加到 proxy_pass url后面

location /v1/ {
    proxy_pass http://192.168.1.69:10082/;
}

#当访问url: www.test.com/v1/
#被代理到 http://192.168.1.69:10082/

#当访问url: www.test.com/v1/bdm/index
#被代理到 http://192.168.1.69:10082/bdm/index

proxy_pass 路径后面添加 “/” 则表示 location 拦截的路径前缀后面部分会被添加到 proxy_pass url后面

   2、proxy_pass 路径后面不添加 “/” 则表示 location 拦截的路径全部会被添加到 proxy_pass url后面

location /v1/ {
    proxy_pass http://192.168.1.69:10082;
}

#当访问url: www.test.com/v1/
#被代理到 http://192.168.1.69:10082/v1/

#当访问url: www.test.com/v1/bdm/index
#被代理到 http://192.168.1.69:10082/v1/bdm/index

proxy_pass 路径后面不添加 “/” 则表示 location 拦截的路径全部会被添加到 proxy_pass url后面
四、配置nginx上传文件大小

        设置上传文件大小,0表示不限制
        client_max_body_size 0;

        client_max_body_size 10m;

        如果不配置,请求会报:413 Request Entity Too Large

配置1:放http中

http {
	....
    client_max_body_size 10m;
    ....
}

配置2:放server 配置中

server {
	listen 8888;
	server_name localhost;
	
	# 设置上传文件大小,0表示不限制
    client_max_body_size 0;

	# app站点
	location /api/ {
		proxy_pass http://127.0.0.1:8740/;
		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_set_header HTTP_X_FORWARDED_FOR $remote_addr;
		proxy_redirect off;
	}

    # CNKI接口
    location /cnki-api/ {
        proxy_pass https://xztg.cnki.net/;
        proxy_set_header Host xztg.cnki.net;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded_Proto $scheme;
    }

	
	location / {
        root   /usr/local/server/front;
        index  index.html index.htm;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值