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

发表评论

/ 快捷键:Ctrl+Enter