参考https://www.cnblogs.com/hanyinglong/p/5102141.html
如出现/bin/sh: ./configure: No such file or directory make[1]: *** [auto/lib/pcre/Makefile] Error 127
表示pcre安装目录不正确,需要重新按照教程安装pcre
cd /usr/local/nginx/sbin/
./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
表示安装成功
./nginx -c /usr/local/nginx/conf/nginx.conf
启动nginx
配置文件存在 /usr/local/nginx/conf/nginx.conf
添加
log_format main '$remote_addr - $remote_user [$time_local] "$host:$server_port" "$request" '
'$status $body_bytes_sent "$request_body" "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time"';
重启
./nginx -s stop
./nginx -s reload
反向代理可以认为,能确认客户端(IP地址),通过常规途径访问服务,但在客户端配置Host域名解析,将流量导入代理服务地址。
在客户端/etc/hosts配置域名解析对应关系
10.64.45.156 8081.max.com
代理服务器需监听:80端口(TCP 默认端口80)
流程:
1)浏览器访问8081.max.com,通过本地host文件域名解析,找到192.168.72.49服务器(安装nginx)
2)nginx反向代理接受客户机请求,找到server_name为8081.max.com的server节点,根据proxy_pass对应的http路径,将请求转发到upstream tomcatserver1上,即端口号为8081的tomcat服务器。
sbin/nginx 必须所属为 root ,启动才会以 root 身份启动
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
查看Nginx进程用户,是否是nobody。在conf/nginx.conf 中设置 user root/work 等对文件有可读或可写权限的用户。
修改nginx.conf中server_name为泛域名
sever{
listen 80;
server_name *.test.com;
access_log /home/work/nginx/access.log main;
location /{
proxy_pass http://127.0.0.1:8080;
}
}
limit_req_zone
limit_req_zone
限速,每秒10个,内存区域10m,大概16万个session
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server
{
listen 80;
server_name xxx.xxx.xxx;
location / {
#缓存区队列burst=100个,不延期,即每秒最多可处理rate+burst个.同时处理rate个。
limit_req zone=one burst=100 nodelay;
proxy_pass http://service;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 120; #长时操作的设置
}
}
zone:one:10m 表示一个内存区域大小为10m,并且设定了名称为one.
rate=5r/s 表示请求的速率是1秒5个请求,当单位设置成60r/m时,并不能达到限速1分钟60次的效果,它等同于1r/s。
$binary_remote_addr 表示远程的ip地址,当此nginx前方还存在代理时,需进行处理
2.2 limit_req的参数
zone=one 表示这个参数对应的全局设置就是one的那个内存区域
burst=100 表示请求队列的长度。
nodelay 表示不延时,比如rate=5r/s,burst=10 那么来了15个请求,能一次搞定,否则,就是此秒只能搞定5个请求。一般都是不延期的设置。
下载1.9以上版本只有1.9以上版本才支持,安装过程略
注意编译的时候加上--with-stream
./configure --with-stream --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf
nginx stream conf
stream{
upstream db {
server 127.0.0.1:3306;
}
# test-db
server {
listen 13006;
proxy_timeout 525600m;
proxy_pass db;
}
}