WishMeLz

生活其实很有趣

Nginx反向代理

server {
       listen       80;
       server_name  xxx.com;
       location / {
        proxy_pass http://xxx.cn/;
        proxy_redirect default;
      }
    }

根据端口和 server_name 反向代理。如果都不匹配默认第一个server

使用以上配置之后,虽然能够访问到转发后的地址,但是所有静态资源文件的请求都报404错误,导致反向代理并没有完全成功。
出于nginx的路由路径【/yanggb/】在路由匹配成功之后还会继续往下寻找匹配规则(在上面的配置中找不到)以及在路径中末尾【/】的原因,静态资源的请求地址无法被nginx有效识别,直接导致反向代理失败了,所有的二级地址都没有被代理成功。

解决方法则是修改路由路径的匹配规则(加上往下匹配的通配符【^~】)


 location ^~ /xxx/ {
         proxy_pass http://xxx.xxx.xxx:9981/;
         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_redirect off;
}

代理另外一个网站