端口转发:nginx做后端,Apache做前端 2018-06-01 默认分类 暂无评论 859 次阅读 最近使用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 http://127.0.0.1:8080; } location ~* /.(jpg|jpeg|gif|png)$ { access_log off; expires 30d; } location ~* /.(js|css)$ { access_log off; expires 1d; } 方法二: 只将.php后缀的文件,交由后端 apache 处理 location ~ /.php$ { proxy_pass http://127.0.0.1:8080; } 方法三: 首先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 http://127.0.0.1:8080; } 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; #代理最大缓存临时文件大小 标签: nginx 转载请注明文章来源 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭