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 使配置生效。