标签归档:nginx

记一次nginx代理配置

背景:

最近部署一台测试服务器在外网,主要用于微信等三方对接必须外网环境,然而数据库等依赖均在内网。

方案 1

打通外网服务器到内网VPN,所依赖的内网服务全走VPN到内网,由于数据库多条SQL执行,每次执行都要经历一次外网到内网的延时,速度实在无法忍受。

方案 2

由外网服务器做代理,转发到内网,所有依赖在内网中解决。

做了张简单的图

代理流程图

外网nginx配置

server{
    listen 443 ssl;
    server_name test.com;
    # 此处省略ssl的配置
    location / {
        # 内网的IP
        proxy_pass         http://192.168.8.12:81;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

内网nginx配置

server {
    listen 81;
    server_name  localhost;

    charset utf-8;

    root /var/www/test;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

配置好nginx还需要配置fastcgi参数,这里只列出改动项,根据自己需求更改。

fastcgi_param  REQUEST_SCHEME     https;
fastcgi_param  HTTPS              on;
fastcgi_param  SERVER_PORT        443;
fastcgi_param  SERVER_NAME        test.com;