nginx

配置nginx的udp协议

≡放荡痞女 提交于 2020-12-22 22:23:22
添加stream模块 在nginx源码目录中,安装stream模块 ./configure --with-stream make make install 将生成的nginx执行文件拷贝到/usr/local/nginx/sbin ------------------------- 修改配置: http { } stream { upstream udpserver { server ip:端口; } server { listen 端口 udp; proxy_connect_timeout 1s; proxy_timeout 20s; proxy_pass udpserver; } } 来源: oschina 链接: https://my.oschina.net/garlicts/blog/4830377

阿里云ECS服务器前后端项目部署

荒凉一梦 提交于 2020-12-22 15:32:25
最近自己写了一个小项目,想把它部署在服务器上以便实时查看,在此记录一下自己的部署过程以及在部署过程中遇到的问题,方便日后查看。 参考: www.kovli.com/2017/09/19/… 作者: Kovli 一、购买云服务器 目前国内占有率比较高的就是 腾讯云 和 阿里云 ,这里本人选择的是阿里云的ECS云服务器。(吐槽一下,普通价格真的比学生价贵太多了) 如果在购买时没有设置ssh密码,可以进入ECS控制台-示例列表-重置密码中设置密码。把IP地址中的公网IP记录下来,后续会用到。 二、登录服务器 选择一款SSH工具登录远程服务器。常见的SSH工具有putty、xshell、xftp、SecureCRT等。这里我选择了putty,因为它简单易用,且不需要安装。 下载好putty之后打开putty.exe,登录界面如下: 在图中所示Host Name的位置输入之前记录的公网IP,在Saved Sessions方框内输入会话名,并点击Save即可保存当前设置,以方便下次登录。 点击Open,进入命令行界面。在这之前,可能会有以下提示: 点击“是”生成一个Key即可。 然后Putty即可连接到你的远程服务器(一般Linux)。 输入用户名和密码,即可远程登录。忘记密码的可以到管理平台中重置密码。 验证成功之后,即可进入以下界面: 接下来的操作就和在服务器本身上操作一样了。 三

技术角 | 架构学习书摘总结(二)高性能架构模式

Deadly 提交于 2020-12-22 07:15:37
点击上方 “ 慧响智凝 ” 可以订阅哦! 本文字数: 5160字 阅读时间: 10分钟 最近阅读了一本架构方面的入门图书叫《从零开始学架构:照着做,你也能成为架构师》,部分内容比较不错,先做书摘总结,以便加深印象与未来回顾学习。 本文是该书第二部分,是书中第四、五章,主要介绍存储高性能、计算高性能,涉及到关系型数据库分库分表与读写分离、NoSQL类型、缓存穿透与热点、单服高性能、集群高性能等内容。 目录 ▪ 第四章 存储高性能 ▪第五章 计算高性能 ▪其他相关摘要 第四章 存储高性能 关系型数据库 读写分离 本质: 将访问压力分散到集群中的多个节点,但是没有分散存储压力。 读写分离的基 ‍ 本实现: 数据库服务器搭建主 ‍ 从集群,一主一从、一主多从都可以。 数据库主机负责读写操作,从机只负责读操作。 数据库主机通过复制将数据同步到从机,每台数据库服务器都存储了所有的业务数据。 业务服务器将 ‍ 写操作发给数据库主机,将读操作发给数据库从机。 读写分离在实际应用过程中需要应对复制延迟带来的复杂性。 解决主从复制延迟的方法: 写操作后的读操作指定发给数据库主服务器。 读从机失败后再读一次主机。 关键业务读写操作全部指向主机,非关键业务采用读写分离。 分库分表 本质: 既可以分散访问压力,又可以分散存储压力。 为了满足业务数据存储的要求,就需要将存储分散到多台数据库服务器上。

Nginx 平滑重启

☆樱花仙子☆ 提交于 2020-12-22 04:35:14
# nginx -s reload 没错就是这个命令。 https://nginx.org/en/docs/beginners_guide.html 平滑重启 适用的场景,一般我们网站都或多或少跑着一些项目,有正式运行的,有测试的,那这就不能随便让这些项目宕掉。这就用到nginx的平滑重启,而不是简单粗暴的kill。 修改配置文件 conf 假如我们修改了配置文件,想要实现平滑重启的效果,首先就要对配置文件做验证。 验证配置文件 # nginx -t https://nginx.org/en/docs/switches.html 检测完毕,可以直接执行 # nginx -s reload 来重启你的nginx服务,起码这不会影响你之前项目的运行了。 如果遇到 nginx kill failed 的错误提示。你需要重新加载 conf 配置文件。 绝对径 -c 配置文件的绝对路径,例如 # /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 然后再次重启nginx服务。 如果还有有问题,那你就应该检测nginx的配置文件,一般nginx会将运行进程放置在它的logs目录, 确认下是否配置了该项。例如 pid /usr/local/nginx/logs/nginx.pid 再次重启nginx服务。 nginx

docker 下使用 netstat

雨燕双飞 提交于 2020-12-21 20:02:31
先使用 docker ps 查看一下你要看的container的名字,比如是叫nginx_sticky 然后用 docker inspect -f {{.State.Pid}} nginx_sticky 查看Pid号码 最后用 nsenter -n -t 12345 进入网络空间 这时用 netstat -t 就能看到了 https://blog.liu-kevin.com/2020/05/13/cha-kan-dockerrong-qi-de-tcplian-jie/ 来源: oschina 链接: https://my.oschina.net/u/943306/blog/4819067

centos7下新建一个用户并限制访问目录

落爺英雄遲暮 提交于 2020-12-21 17:31:27
使用root账号在centos下新建一个普通用户,并限制它的访问目录,只能访问特定目录. 例如使用nginx发布静态的网站时需要上传静态文件,可以创建一个普通用户用来传文件: 1、 新建用户组 groupadd webgroup mkdir /usr/local/nginx/html //让特定用户访问/usr/local/nginx/html 有就不用创建了 2、 新建用户并将用户添加到分组当中 //-d宿主目录 -g 用户(webdeployer)分到哪个组(webgroup) useradd -d /usr/local/nginx/html -g webgroup webdeployer 3、给刚新建的用户(webdeployer)设置密码 passwd webdeployer 接下来输入需要设置的密码 4、看下用户是否设置成功了 groups webdeployer 5、使用root账号 修改 sshd_config, 限制 ssh 用户访问指定目录 vim /etc/ssh/sshd_config 在打开的文件最后加入以下内容: Match group visitors ChrootDirectory /usr/local/nginx/html X11Forwarding no AllowTcpForwarding no ForceCommand internal

Nginx实现高速并发处理的原理详解

大憨熊 提交于 2020-12-21 16:11:14
  众所周知,Nginx是当下最流行的Web服务器,它具有很强的负载均衡,反向代理,邮件代理以及静态缓存的功能。在提供这些功能的同时,Nginx的性能也极其优秀,可以轻松支持百万、千万级的并发连接,能够为Tomcat、Django等性能不佳的Web应用抗住绝大部分外部流量。那么,Nginx是如何实现高速并发处理呢?这就要从它优秀的架构设计来说起。   框架结构   如下图所示,Nginx结合采用多进程和IO多路复用的结构处理并发客户请求。   Master进程主要负责信号处理,监控和管理Worker进程。 Master进程本身不处理具体业务。Worker进程处理具体业务,包括处理连接请求和网络读写事件的处理。多个worker进程可以独立地处理各自的客户连接。Worker进程之间通过信号量和共享内存进行通信。      通过配置与系统CPU等量的worker进程,可以实现某一个进程绑定某一个特定CPU从而减少系统开销。在每一个worker进程处理多个client并发连接请求时,Nginx 采用IO多路复用技术在一个进程内同时处理多个client的网络读写事件。与多进程/线程处理多连接请求模型相比,IO多路复用可以减少大量的进程调度带来的系统开销,从而提高系统整体的处理性能。   并发处理方式      网络服务器在处理并发处理方式,如上图socket处理流程所示

Nginx负载均衡权重,ip_hash

依然范特西╮ 提交于 2020-12-21 02:32:46
nginx 为后端web服务器( apache ,nginx, tomcat ,weblogic)等做反向代理 几台后端web服务器需要考虑文件共享, 数据库 共享,session共享问题.文件共享可以使用nfs,共享存储(fc,ip存储都行)+redhat GFS集群文件系 统,rsync+inotify文件同步等.小规模的集群中使用更多的是nfs.对于内容管理系统,单台进行发布信息,向多台同步使用rsync+inotify就是个不错的选择. 小规模集群,单台高性能 数据库 (如志强双四核,32/64/128G内存)即可,大规模集群可能要考虑数据库集群了,可以使用mysql官方提供的集群软件,也 可以使用keepalived+lvs读写分离做Mysql集群. session共享问题是一个大问题,如果nginx采用ip_hash的轮询方法,每个ip在一定时间内会被固定的后端服务器,这样我们不用解决session共享问题.反之, 一个ip的请求被轮询分发到多台服务器上,就要解决session共享的问题,可以使用nfs共享session,把session写入mysql或者memcache等方法,当机器规模比较大 时,一般使用把session写入memcache里面. 后端的web服务器如何配置我们这里就不讨论了,后端服务器可能是apache,nginx,tomcat

运维自动化-ansible

喜你入骨 提交于 2020-12-20 20:08:53
ansible 简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible 特点 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理; 有大量常规运维操作模块,可实现日常绝大部分操作; 配置简单、功能强大、扩展性强; 支持API及自定义模块,可通过Python轻松扩展; 通过Playbooks来定制强大的配置、状态管理; 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可; 提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台。 ansible 任务执行 Ansible 系统由控制主机对被管节点的操作方式可分为两类,即adhoc和playbook: ad-hoc模式(点对点模式) 使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。就相当于bash中的一句话shell。 playbook模式(剧本模式) 是Ansible主要管理方式,也是Ansible功能强大的关键所在。playbook通过多个task集合完成一类功能,如Web服务的安装部署、数据库服务器的批量备份等

Nginx在局域网内实现真正的ip_hash负载均衡

人盡茶涼 提交于 2020-12-20 11:22:18
Nginx在局域网内实现真正的ip_hash负载均衡 遇到的问题 本人在以前公司的局域网内搭载Nginx负载均衡的时候发现使用 ip_hash 实现负载均衡会发生一个奇怪的显现,所有 客户端的请求 访问都打在了 同一个服务器 上! 这使得负载均衡根本就没有起到任何作用,本人查阅了相关资料最终发现解决方法,多谢网上的各位大神,参考文献在最后说明。 为什么无法实现在同一局域网内ip_hash负载均衡说明 在同一个局域网中,大多数情况下我们在同一局域网内的所有机器IP 前3位 都是相同的,假设都为192.168.1.xxx。 根据官方的解析(参考网上大神的说法) This directive causes requests to be distributed between upstreams based on the IP-address of the client. The key for the hash is the class-C network address or the entire IPv6-address of the client. IPv6 is supported for ip_hash since 1.3.2 or 1.2.2. This method guarantees that the client request will always be