Nginx的进程模型、反向代理配置、rewrite的使用、负载均衡配置、https配置、日志切割
2017-12-26 21:11
1436 查看
Nginx的进程模型、反向代理配置、rewrite的使用、负载均衡配置、https配置、日志切割
进程模型
在nginx中,包括master与worker两类进程,master进程主要进行一些全局的初始化工作与worker进程的管理,事件处理均是在worker进程中执行的。nginx有两种启动模式,单进程启动与多进程启动单进程启动系统中仅有一个进程,该进程同时充当master与worker两种角色
多进程启动系统中仅有一个master进程,但是至少包含一个worker进程。
在nginx中进程模型采用fork方式,预先分配worker的子进程数量有配置文件worker_processes确定,默认为1。master主进程负责创建监听接口,fork子进程以后,由worker进程处理客户连接,每个worker子进程独自处理任务。
反向代理配置
proxy_pass 设置代理的服务器地址proxy_set_header 设置header
location /nginx { 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_pass http://192.168.10.101:8080; proxy_redirect default; }
rewrite的使用
rewrite的主要作用是实现URL的重写将原本要访问/garlic的目录重写为/garlic-manage
根据不同的浏览器将得到不同的结果
防止盗链
实现域名跳转
location /tomcat { rewrite ^/tomcat http://www.garlic.com/nginx permanent; }
浏览器输入www.garlic.com/tomcat然后重定向到www.garlic.com/nginx
负载均衡配置
upstreamip_hash 默认值
权重 weight=x
fair 根据服务器的响应时间来分配请求
url_hash
可以标记backup\down等,如:
upstream nginx_upstream { server 192.168.10.101:8080 down; # 表示此台服务器永久宕机 server 192.168.10.101:8081 backup; # 表示此服务器在所有机子宕机之后再启用 }
负载均衡完整配置
upstream nginx_upstream { server 192.168.10.101:8080; server 192.168.10.101:8081; } server { listen 80; server_name www.garlic.com; #charset koi8-r; access_log logs/garlic.access.log main; location / { root html; index index.html index.htm; } location /nginx { 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_pass http://nginx_upstream; proxy_redirect default; } location ~ .*\.(gif|jpg|jpeg|png|swf|js|css)$ { expires 5m; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
https配置
openssl生成ssl证书
#创建服务器私钥 openssl genrsa -des3 -out server.key 1024 #创建签名请求的证书(csr); csr核心内容是一个公钥 openssl req -new -key server.key -out server.csr #去除使用私钥是的口令验证 cp server.key server.key.org openssl rsa -in server.key.org -out server.key #标记证书使用私钥和csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt #x509是一种证书格式 #server.crt就是我们需要的证书
nginx中https的配置
# HTTPS server server { listen 443 ssl; server_name garlic.com; ssl_certificate /home/sam/opt/nginx/ssl/server.crt; ssl_certificate_key /home/sam/opt/nginx/ssl/server.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
日志切割
在实际的生产环境中,nginx的日志增长速度是极其迅速的,为了避免日志文件的增加影响性能,同时为了方便日志进行分析处理,日志切割是必要的。那么如何进行nginx的日志切割呢?让我们来一起看看mv access.log access.log20171206
kill -USR1 nginx [主进程号]
使用脚本编写定时任务来实现
日志切割脚本
#!/bin/sh # log_cut.sh # 用于实现nginx日志切割 # # Created by iOS-Dev on 12/12/2017. # ## nginx 日志文件所在目录 LOGS_PATH=/home/sam/opt/nginx/logs ## 获取昨天的日期yyyy-MM-dd YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) ## 移动文件 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log ## 向nginx主进程发送USR1信号,USR1 信号是重新打开日志文件 kill -USR1 $(cat /home/sam/opt/nginx/logs/nginx.pid)
编写linux定时任务,执行命令
crontab -e
定时任务内容
0 0 * * * /bin/bash /home/sam/opt/nginx/sbin/log_cut.sh # 每天0时0分进行日志切割
相关文章推荐
- nginx配置详解-url重写、反向代理、负载均衡
- Nginx正反向代理、负载均衡等功能实现配置
- nginx的配置及以反向代理方式实现动静分离、负载均衡
- 告别LVS—使用keepalived+nginx实现负载均衡代理多个HTTPS
- Nginx 安装配置 禁止使用IP访问 rewrite重写 别名设置 日志轮询
- NGINX配置HTTPS加密反向代理访问–自签CA
- nginx1.10.3一键安装/系统内核优化/配置文件优化/https/日志切割
- [node]:Nginx配置多站点+https & 使用pm2管理后台node进程
- Nginx正反向代理、负载均衡等功能实现配置
- 告别LVS:使用keepalived+nginx实现负载均衡代理多个https
- 告别LVS:使用keepalived+nginx实现负载均衡代理多个https
- nginx 反向代理https配置
- Linux 下 Nginx 反向代理 负载均衡配置
- Nginx入门级简介,包括安装,基本使用,负载均衡,动静分离,反向代理,缓存应用等功能。
- 使用 Nginx 代理 Socket.io/WebSocket 及 负载均衡配置
- nginx在linux系统下的安装部署,以及反向代理https请求协议,ssl证书的生成,负载均衡tomcat服务器!
- Nginx的Upstream负载均衡与反向代理的配置
- Nginx正反向代理、负载均衡等功能实现配置
- nginx反向代理之缓存,负载均衡,动静分离的配置详解