Nginx是一个高性能的HTTP和反向代理服务器,使用Nginx,只需要简单的几条命令保存到文件,即可实现简单、基本反向代理功能。
" W1 D6 x/ S8 l4 a2 G+ q! d# t) Y
H5 N4 g" m& I8 N) P! e- vim /usr/local/nginx/conf/nginx.conf
复制代码 修改nginx默认规则6 ?- W7 p! c: m3 w7 o
- client_body_buffer_size 512k;
, ]8 m1 W! U- A8 G) g - proxy_connect_timeout 5;- E8 I% X# \7 B# `* G
- proxy_read_timeout 60;
) C3 p, E) U/ t$ [8 e3 [- a - proxy_send_timeout 5;' t- H! R( x. P ~/ p7 y5 D N
- proxy_buffer_size 16k;8 U& u) k m8 B/ _/ M
- proxy_buffers 4 64k;
/ ] [" X0 \9 j. }9 { - proxy_busy_buffers_size 128k;) |8 ?4 w$ b( L" v+ D D0 `
- proxy_temp_file_write_size 128k;
5 M' R. o' G0 z3 } o0 e - proxy_temp_path /home/cache/temp;1 _& b6 U" o' z
- # 配置临时目录
( t' R5 p2 h; B" X - proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache:20m inactive=30d max_size=600m; J1 f- \& C" T/ L- o( L. s) r
- #20m是内存占用,30d是30天无访问删除,600m是缓存占具硬盘空间,cache为缓存区名字.
复制代码 vim /usr/local/nginx/conf/nginx.conf 查找:#limit_conn_zone $binary_remote_addr zone=perip:10m; 并在前面加入以上内容:
9 E* {1 u; T5 v/ Y- |$ ]
3 t& e4 g8 q Y$ `% d- n6 M- mkdir /home/cache/path -p
0 ]8 G+ p; H9 `" w - mkdir /home/cache/temp
( A8 P2 N( K3 |5 [ Y; z- B" o - chmod 755 -R /home/cache
复制代码 创建缓存目录,并赋予权限* M5 w1 t+ O+ D6 I$ ?) f6 M- }
. H4 n7 j" b) }- \& t8 Y' K
8 x: ?! }# f0 _$ e4 [# k! A. m7 \
先创建一个“www.wdidc.net”虚拟主机
' ?8 S# Y# ]1 S/ X& [- cd /usr/local/nginx/conf/vhost
复制代码 进入LNMP一键包的虚拟主机配置文件夹,找到刚刚创建的“www.wdidc.net.conf”文件,并编辑。- s2 `( h8 B( Q- q/ a
# h* Q6 ^5 n3 i1 Y& m/ H
删除之前系统生成的代码,填入以下代码,注意修改网址。
% `2 j9 f$ g6 I5 J& }- server
* ^9 N4 i, Q x( M0 M+ R, }' a; Q - {
9 G* @, M. e+ E# u1 s/ l - listen 80;, Z: F+ R/ q4 f& M" E
- server_name www.wdidc.net;
+ e+ K) @6 Q# e3 ~# C7 J$ j2 c) _$ V
, |9 W# k$ r% c( J6 V- location / {
, u; U' N K% o9 m2 \8 e J - proxy_cache cache;
4 G. q- ?6 s% l% k) Z - proxy_cache_valid 200 304 7d;+ D; T; |6 w. r
- #200 304状态缓存7天,按实际情况修改
1 ~1 a3 s) }1 Y* Z$ N e* V - #其他状态缓存(如502 404)10秒
+ |! i2 {( G4 r' a9 ~ n% s+ f1 d - proxy_cache_valid any 10s;
8 [' Q! {; L% | - proxy_cache_key "$scheme$host$request_uri";
$ O# }; [2 ^5 P; [' v - #缓存key规则,用于自动清除缓存。0 Y6 h6 W/ y9 O
- proxy_pass https://bbs.wdidc.net/;
J6 N7 c3 d" V+ @8 E - proxy_redirect off;5 c* v! ?; j0 B5 [+ I: l, S
- proxy_set_header X-Real-IP $remote_addr;
, \4 p' O$ K9 u+ } - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
5 W! `: \8 Q3 E: [! H8 `; X; R - #向后端传递访客ip
7 C2 L% z4 O* J2 o8 j& B5 L, | - #limit_conn one 20;! z; s9 v$ A# T
- #limit_rate 200k;
( K. E, \! s2 x6 X" R3 l. X! ^ - #20为单ip连接数,200k为单ip连接速度,若要开启请去掉#
@; E6 S# I( O8 Z - }1 m: q( z" w7 e! c3 b( ]; b
- }
复制代码 以上代码,表示使用“www.wdidc.net”反向代理“bbs.wdidc.net”,然后保存文件即可。
" ^/ H# r; c* `
3 _; X$ {2 }- p3 \! | |* N7 @- /usr/local/nginx/sbin/nginx -t
复制代码 测试:若提示:“the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful”表示正常,若有错误请根据错误提示排除问题。7 N4 @- F' Z* b1 x( R- r
5 n% |; u7 @$ @# y$ @9 `6 y) U
重启nginx6 _( [5 M l4 Q- N
" y% o7 k' b" J# \
7 G7 _" f" n1 \+ v1 H) b
5 G2 a8 ^1 ^6 L! h! S+ L" Q( K4 f
5 J- ~3 f7 {, H |