配置NGINX前端APACHE后端服务器

来源:互联网 发布:excel数据 access 编辑:程序博客网 时间:2024/05/16 07:25
最近使用nginx做前端,apache后端,就是让nginx处理静态文件,把动态的转交给apache处理,现在把配置方式整理如下

1.1、反向代理过程
Nginx前端,Apache后端过程其实很简单,首先用户访问的是80端口的nginx,然后nginx将静态内容留给自己,
其余的转发给非80端口的apache,apache处理完毕后再回传给nginx。

二、编辑 Nginx 配置文件
2.1、添加”proxy_set_header”指令
proxy_redirect off;
proxy_set_header Host $host;# 向后端服务器发起请求时添加指定的header头信息
proxy_set_header X-Real-IP $remote_addr;# 向后端服务器发送真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#让后端如php能直接通过变量获取真实IP

2.2、添加”proxy_pass”指令
方法一:
将所有请求都转发给后端 apache 处理,但由于 “~*” 优先级高于 “/” ,所以图片、JS、CSS例外,”expires” 用于设置缓存时间。
location / {
proxy_pass <!– m –><a class=“postlink” href=“http://127.0.0.1:8080;”>http://127.0.0.1:8080;</a><!– m –>
}
location ~* /.(jpg|jpeg|gif|png)$ {
access_log off;
expires 30d;
}
location ~* /.(js|css)$ {
access_log off;
expires 1d;
}

方法二:
只将.php后缀的文件,交由后端 apache 处理
location ~ /.php$ {
proxy_pass <!– m –><a class=“postlink” href=“http://127.0.0.1:8080;”>http://127.0.0.1:8080;</a><!– m –>
}

方法三:
首先nginx判断是否存在文件,如果不存在都转交给apache处理
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
if (!-f $request_filename) {
proxy_pass <!– m –><a class=“postlink” href=“http://127.0.0.1:8080;”>http://127.0.0.1:8080;</a><!– m –>
}
2.3、添加高级选项(选做)
proxy_connect_timeout 30; #请求连接后端服务器超时时间。即在规定时间,后端必须响应前端握手请求。
proxy_read_timeout 60; #后端服务器响应时间。即连接成功,在后端排队等候处理不能超过的时间。
proxy_send_timeout 30; #后端数据回传时间。即在规定时间,后端服务器必须将所有数据回传完毕。
proxy_buffer_size 4k; #从后端服务器读取的头信息的缓冲区大小。
proxy_buffers 4 32k; #从后端服务器读取的头信息的缓冲区数目和大小
proxy_busy_buffers_size 64k; #如果服务器繁忙,可申请的proxy_buffers大小
proxy_temp_file_write_size 64k; #代理缓存临时文件大小
proxy_max_temp_file_size 128m; #代理最大缓存临时文件大小
0 0