Nginx 作為 web 服務器一個重要的功能就是反向代理,Nginx 反向代理的指令不需要新增額外的模塊,默認自帶 proxy_pass 指令,只需要修改配置文件就可以實現反向代理。
舉個例子,比如要配置后端跑 apache 服務而前端跑Nginx服務,PHP頁面用http://ip:8080訪問,而我們的目標是實現通過 http://ip 就能訪問到你的網站,只需要進行下面的Nginx配置。
Nginx反向代理模板:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
## Basic reverse proxy server ## upstream apachephp { server ip:8080; #Apache } ## Start www.tyjyhsjg.com ## 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 使配置生效。