Nginx 作为 web 服务器一个重要的功能就是反向代理,Nginx 反向代理的指令不需要新增额外的模块,默认自带 proxy_pass 指令,只需要修改配置文件就可以实现反向代理。
举个例子,比如要配置后端跑 apache 服务而前端跑Nginx服务,PHP页面用http://ip:8080访问,而我们的目标是实现通过 http://ip 就能访问到你的网站,只需要进行下面的Nginx配置。
Nginx反向代理模板:
## Basic reverse proxy server ##
upstream apachephp {
server ip:8080; #Apache
}
## Start www.xevps.net ##
server {
listen 80;
server_name www.xevps.net;
access_log logs/xevps.access.log main;
error_log logs/xevps.error.log;
root html;
index index.html index.htm index.php;
## send request back to apache ##
location / {
proxy_pass http://apachephp;
#Proxy Settings
proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
其中 upstream apachephp 中的 apachephp 为别名,而 location 中的 proxy_pass 即定义代理的别名地址。
Lnmp 环境下 只需要修改 /usr/local/nginx/conf/vhost/abc.conf 中的配置信息即可。
修改完成后执行 lnmp reload 使配置生效。

