nginx.conf:
main,worker_process、error_log、user、group;
event{} 事件驱动相关
httpd{} 关于http相关的配置
server{} 虚拟主机
upstream NAME{}负载均衡模块
需定义在server之外
location URI{} URI访问属性
location URI {}:
对当前路径及子路径下的所有对象都生效;
location = URI {}:
精确匹配指定的路径,不包括子路径,因此,只对当前资源生效;
location ~ URI {}:
location ~* URI {}:
模式匹配URI,此处的URI可使用正则表达式,~区分字符大小写,~*不区分字符大小写;
location ^~ URI {}:
不使用正则表达式
一、反向代理。
location /luntan { proxy_pass http://192.168.1.32/bbs; } location ~* /luntan { #使用正则表达式匹配,不能使用URI proxy_pass proxy_set_header X-Real-IP $remote_addr; #传送给后端真实源地址 } [[email protected] ~]# vim /etc/httpd/conf/httpd.conf #后端web服务器修改日志格式 LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
二、负载均衡,三种方式:round-robin、ip_hash、least_conn
upstream abc { ip_hash; #配置此方式不能配置sorry_server server 192.168.1.31 weight=1; #指定权重才能负载均衡 server 192.168.1.32 weight=1 max_fails=3 fail_timeout=30s; #RS健康状况检查 server 127.0.0.1:8080 weight=1 backup; #当所有后端web故障时,指定sorry_server } location / { #指定可负载均衡的URI proxy_pass } server { #配置sorry_server listen 8080; server_name localhost; root /web/errorpages; }
三、缓存
http { #proxy_cache_path不能定义在server{}上下文 proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=NAME:10m inactive=24h max_size=1g; } #levels:子目录等级;keys_zone:共享内存命名及大小;max_size:缓存目录大小 location / { proxy_pass http://lsq; proxy_cache NAME; #keys_zone共享内存名称 proxy_cache_valid 200 10m; #返回码缓存时间,即返回码200缓存10分钟 }
四、读写分离。
location / { root html; index index.html index.htm; if ($request_method ~* "PUT") { proxy_pass http://192.168.1.31; break; } }
时间: 2024-10-13 07:43:52