nginx入门手册
2022/1/19 7:13:27
本文主要是介绍nginx入门手册,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、nginx概况
1、nginx配置文件
- 核心模块:main http server location mail
2、nginx模块
- event module:事件处理机制
- phase handler:称为 handler 模块,处理客户端请求并产生待响应内容
- output filter:也称为 filter 模块,主要是负责对输出的内容进行处理,可以对输出进行修改
- upstream:upstream模块实现反向代理的功能,将真正的请求转发到后端服务器上,并从后端服务器上读取响应,发回客户端
- load-balancer:负载均衡模块,实现特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器
二、常用定制
1、存在多个server,都写在nginx.conf,文件太乱
- 使用include指令,引用server文件,支持通配符
2、调整工作线程
- work_processes,一般配置为和cpu核心数相同的数量
3、静态页面读取已失效cookie,不使用cookie
location /xxx { add_header Cache-Control no-cache; add_header Pragma no-cache; add_header Expires 0; }
4、多个服务器负载
- 与server平级配置
upstream kyxm-server { ip_hash; # 绑定同一ip客户端请求到同一服务器 server 10.10.3.94 weight=1; // weight设置负载权重 server 10.10.3.95 weight=1; }
5、哪些模块是比较常用要定制的地方?
- filter 处理请求或响应页面的内容
- upstream 负载服务器配置
- hadler 不常用,但是可以配置请求的负载均衡处理策略
三、配置样例
1、nginx.conf配置文件
点击查看代码
#user nobody; worker_processes 4; # 定制:工作线程数(取cpu核心数即可) #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip模块设置 gzip on; #开启gzip压缩输出 gzip_min_length 1k; #最小压缩文件大小 gzip_buffers 4 16k; #压缩缓冲区 #gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0) gzip_comp_level 2; #压缩等级 gzip_types text/plain application/x-javascript text/css application/xml application/javascript; #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。 gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用 include vhost/*.conf; # 定制:外部配置文件加载 }
2、定制配置文件
点击查看代码
upstream kyxm-server { ip_hash; # 同一ip客户端转发到指定服务器 server 10.10.3.94 weight=1; # 设置该服务器负荷为1 (back 备份机,down 无可用后使用) server 10.10.3.95 weight=1; } server { listen 8899; server_name localhost; proxy_buffer_size 128k; proxy_buffers 32 128k; proxy_busy_buffers_size 256k; client_max_body_size 2048m; #允许客户端请求的最大单文件字节数(定制:多个服务器就设置大些) client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数, proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时) proxy_temp_file_write_size 256k; charset utf-8; proxy_set_header Cookie $http_cookie; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #access_log /var/log/nginx/host.access.log main; location /server/ { proxy_pass http://192.168.8.69:5001/eap/; proxy_cookie_path /eap/ /; # 替换 sub_filter_types 'text/html;charset=UTF-8' '*' text/javascript application/javascript text/plain text/JSON text/css application/json; sub_filter '192.168.8.69' '192.168.5.17'; sub_filter_once off; } location /server1 { root D:\sysware-609\nginx-1.15.8\html; index index.html index.htm; # 定制:禁用cookie缓存,解决切换用户token失败问题 # proxy_pass http://kyxm-server; add_header Cache-Control no-cache; add_header Pragma no-cache; add_header Expires 0; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
参考文档
- Nginx 中 include 指令使用
- 关于 Nginx
这篇关于nginx入门手册的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享