nginx telnet sshd
nginx小结
一. (引子) Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的十分轻量级的HTTP 和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是 Apache服务器不错的替代品。Nginx是俄罗斯人编写的十分轻量级的HTTP服务器。
1.你通过命令curl -I 163.com
curl -I qq.com
curl -I taobao.com
curl -I sina.com
。。。。。。。。
均可查看各个大型网站所使用的服务是否是nginx,有的网站可以显示版本号,说明一下,对于一个好的管理员来说,最好不要显示这些版本号,因为这样让一些不法分子知道你的版本号之后容易对你的网站***呢。从网站或者服务器上下载合适版本的nginx,处已nginx-1.0.6.tar.gz版本为例,下载之后解压缩,产生目录nginx-1.0.6, cd nginx-1.0.6/进入目录,在此目录下
1. ./configure( 是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,在当前目录中生成 Makefile 文件(还有其它本文无需关心的文件),该命令的执行必须在你解压的第一层路径执行,即顶级路径)
2 . make(make 程序就按照当前目录中的 Makefile 文件的指示将源代码编译为二进制文件,最后将这些二进制文件移动(即安装)到指定的地方(仍然按照 Makefile 文件的指示)。
3 make insall (这条命令来进行安装这一步一般需要你有 root 权限(因为要向系统写入文件)
(以上三步是编译源码的三部曲)
在上述三步中可能会在编译检测的时候报错,可能会提示你安装一些软件,
yum install -y pcre-devel openssl-devel gcc zlib-devel
(gcc 是因为那个配置文件使用C编写的)
二.
1,安装
useradd -s /sbin/nologin -M nginx(添加用户,因为nginx文件的的使用用户是nginx,也可以以后用的时候添加)
cd /nginx-1.0.6
vi auto/cc/gcc
将#debug
#CFLAGS=“$CFLAGS -g”(这一行如果不注释,du -sh /usr/local/nginx 等一会编译完成程序会有几兆,注释之后就剩几百K了)
vi src/core/nginx.h
#define NGINX_VERSION "1.0.6"
#define NGINX_VER "nginx"(去掉后面的版本号,这样为了安全起见,外界访问的时候不会对外公开)
(#这里的#并不是注释,而是C语言的预定义)
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
(指出用户,用户组,--prefix用于指明安装路径,这里指的是是将所有的安装文件等全部放在指定的目录中,要是你要卸载该配置文件,直接删除此目录文件即可,即是:rm -rf /usr/local/nginx 即可。--with-http_stub_status_modules是状态加载模块,默认的不加载。--with-http_ssl_module支持加密,)
make(make clean 或者make tidy。make clean删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件)
make install
ln -s /usr/local/nginx/sbin /usr/sbin (建立软连接)
或者是写进:
vi .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/nginx/sbin
source .bash_profile(重新读取文件,将你更新的内容读进去)
2.(1)配置
vi /usr/local/nginx/conf/nginx.conf(编辑nginx的主配文件)
user nginx nginx;(指明使用的用户和组)
worker_processes 4;(制定工作衍生的进程数)
error_log logs/error.log info;(错误日志定义类型)
pid logs/nginx.pid
events {
use epoll;(使用高效网络I/O模型)
worker_connections 1024;(允许的连接数)
}
编辑完保存退出,
nginx -t(用于测试)(注意改动的文件要在/usr/local/nginx/conf/nginx.conf中改动文件哦,切不可在nginx-1.0.6下的文件改动啊,成功说明你改动的正确)
启动命令:nginx
外部测试:http:192.168.0.115(此时apache要是关着的哈,也就是/etc/init.d/httpd status 是stop 的。那么此时访问的文件就是/usr/local/nginx/html/index.html)
停止nginx 服务:
nginx -s stop
压力测试:
ab -n 1000 -c 1000 http://192.168.0.115/index.html
(ab是apache自带的网络压力测试工具,-n在测试会话中所执行的请求个数,默认时,仅执行一个请求,-c一次产生的请求个数,默认是一次一个)
Requests per second: 1426.75 [#/sec] (mean)
在服务器上netstat -altunp 可以查询(在这里是server15)
注意:在改动配置文件的时候容易造成括号不匹配的情况,故在编辑/usr/local/nginx/conf/nginx.conf(编辑nginx的主配文件)的时候注意的是用vim编辑器.另外注意在./configrue 的时候记得要加选项,-with-http_stub_status_module --with-http_ssl_module,这样在你配置证书的时候才不至于出错,还有需要注意的是在
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
这样的错误的时候注意是因为nginx 的PID坏了,你应该用killall nginx 杀死与nginx有关的进程,然后用nginx -t 检测配置文件的正确性,nginx 启动服务,nginx -s reload 重新加载。
(2). 查看nginx状态的地址
location /status {
stub_status on;
access_log off;
}
保存退出, nginx -t(测试修改是否正确)
nginx -s reload(从新启动服务,相当于/etc/init.d/httpd reload)
访问:http://192.168.0.115/status
(3)要想访问https://192.168.0.115
需要在配置文件中将注释
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate cert.pem;(需要手工生成)
ssl_crtificate_key cert.pem;(注意上下的两个key的名字和下面的钥匙的名字一致的)
ssl_sessio_timeout 5m;
。。。。。
ssl_prefer_server_ciphers on;
location /{
root /html;(意思是通过https://192.168.0.115来访问的默认目录)
index index.html idex.htm;(意思是你在测试的时候默认找的文件是index.html或者)
}
}
在/etc/pki/tls/certs下执行 make cert.pem
然后 mv cert.pem /usr/local/nginx/conf
用 netstat -atnlp | grep :443可看到443端口开启了。(注意这个端口的开启得在你在你的nginx 是开启的状态下才可以查看得到的)
从新启动nginx,然后https://192.168.0.115访问即可
view 可以查看你刚才设置的证书内容。
(4) 配置虚拟机
server {
listen 80;
server_name www15.example.com;
access_log logs/www15.example.com.access.log main;
location / {
index index.html;
root /www15;
}
}
然后配置好后,nginx -t 测试成功之后,然后从新 nginx -s reload
mkdir /www15
echo `hostname`> index.html
之后访问http://www15.example.com 即可
(5)http://wiki.nginx.org/NginxChsLoadBalanceExample可参考
一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。
vi /usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes 4;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
upstream westos {
server 192.168.0.75 weight=3;(权重为3意思就是访问的时候这个网页出现的次数为占的比重为3)
server 192.168.0.31;
}
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name desktop75.example.com;
location / {
root html;
index index.html idex.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://westos;(//注意这里的//westos是与之上的upstream 后面的westos同名的。)
}
}
}
在这里你要注意的是括号的匹配问题,还有就是你配upstream的时候是在虚拟机上,所有你需要多写一个server,由于中间会有扰乱,你可以尝试将无用的注释去掉。
server_name www.sushan.org;(//在你的客户端访问的时候你输入http://www.sushan.org有可能无法访问,此时你可以在客户端的 /etc/hosts下面下上一条解析: 192.168.0.124 www.sushan.org,注意在/etc/hosts下一个IP地址你可以解析很多的地址,也就是所你访问哪个解析地址的时候会给您连接到那个对应的IP地址。不断刷新会在2个负载均衡的机子上刷新,当一台关闭的时候,会自动跳转到下一台)
然后配置好后,nginx -t 测试成功之后,然后从新 nginx -s reload
在访问你的http://www15.example.com刷新会不断变换。
三。yum install xinetd telnet-server -y
示例: telnet localhost
telnet 192.168.0.115
telnet默认不允许以root身份登陆到服务器上,为了安全。
vi /etc/xinetd.conf
Define access restriction defaults
no_access = 192.168.0.115(不让该ip进入)
only_from = (只允许)
cps = 50 10 (意思是每秒连接超过50次后,接下来的十秒不连接)
instance =50(最大的连接量)
per-source =10 (并发的)
ldd /usr/sbin/sshd ldd /usr/sbin/nginx 该命令用于判断某个可执行的 binary 档案含有什么动态函式库
查看含有 libwrap.so.....的就是支持tcp环绕的。
使用telent要执行chkconfig --list 后面显示含有telnet ,没有的话要启动chkconfig --level 5 xinetd on
限制和允许访问ssh 和telnet
vi /etc/hosts.allow
添加允许的网段或网址如: sshd:192.168.0.(0之后要有.哦)
in.telnetd:192.168.0.22
添加禁止的网段或网址如:sshd:192.168.0.(0之后要有.哦)
in.telnetd:192.168.0.22
或者
在hosts.deny中
sshd:all
在hosts.allow中
sshd:192.168.0.15(禁止所有之后,然后添加允许的网段或者网址)
在hosts.allow和hosts.deny发生冲突时,以hosts.allow的优先级最高。
(注意:在改动hosts.allow和hosts.deny中东西时,不用启动任何服务,立即生效)
转载于:https://blog.51cto.com/sushan/688583
nginx telnet sshd相关推荐
- Linux安装telnet服务、telnet 命令用法
前言 环境:centos 7.9 Telnet命令经常被用于测试远程端口通不通,telnet命令既可以在Windows下使用,也可以在Linux下使用. Windows下使用telnet命令 开启te ...
- lnmp之php5.6.29安装
linux下lnmp环境之php安装 为了防止出现缺失,安装下面集成,复制的时候请将这个复制成一个整行,下面3行是一整行 [root@localhost src]# yum -y install gc ...
- 互联网企业安全高级指南3.5 选择在不同的维度做防御
3.5 选择在不同的维度做防御 攻击的方法千千万万,封堵同一个安全风险的防御方法往往不止一种,如何选择性价比最高的手段是甲方安全从业者需要权衡的. 1. 技术实现维度场景 在纵深防御的概念中(参考后面 ...
- Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)
# 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...
- centos7子系统 win10_Windows10内置Linux子系统初体验
WSL 前言 前段时间,机子上的 win10 又偷偷摸摸升级到了一周年正式版,比较无奈.不过之前听闻这个版本已经支持内置的 Linux 子系统,于是就怀着好奇心试玩了一把.虽然期间遇到了很多问题,但总 ...
- Docker技术研究
文章目录 一.Docker入门 1.Docker对比虚拟机 1.镜像 查看所有镜像 docker打标签 查看镜像的详细信息 只搜索关注度1000以上的镜像 删除镜像 导出镜像 导入镜像 上传镜像 2. ...
- CentOS下安装vsftpd
因为FTP的端口是 两个,一个是固定21端口,还有一个任意端口的数据通道.关键是任意端口不好搞. 首先在vsftpd的配置文件中设置 任意端口的范围 [root@localhost root]# vi ...
- Linux进程管理(ps,pgrep,kill,killall,pkill,nohup,bg,fg)
文章目录 Linux进程管理 什么是进程?什么是线程?二者的区别? Linux进程管理命令 ps命令 使用方法案例 ps带减号和不带减号的区别 查看进程树的命令pstree pgrep命令 kill命 ...
- zabbix自动发现与监控内存和CPU使用率最高的进程
监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用za ...
最新文章
- vue element upload 控件用form-data上传方式导入xls文件
- C++字符串数组排序技巧
- 4K P60 444 相关的事
- 行家来信 | 我在国际AI开源组织LFAI当董事的200天
- python自学视频-师傅带徒弟学Python:第一篇Python基础视频课程
- java简易计算器考察什么_练习:用java写一个简易计算器
- 前端学习(2628):node.js中LTS和Current的区别
- 德标螺纹规格对照表_抚顺船用外螺纹铜减压阀带NK船检证书
- PYTHON语言之常用内置函数
- 三个故事看懂了再结婚(转)
- 便宜可靠的激光雷达可能要来了!Luminar关键部件成本降到3美元
- 设计模式(7)——适配器模式
- 使用JMH做Java微基准测试:JMH(Java Micro Benchmark) 简介
- JavaScript之数组学习
- 广州天河租房随笔记录
- word双面打印的方法
- 《史蒂夫·乔布斯传》——童年篇有感
- 2018年 新年目标
- a标签href的几种写法
- shell脚本、awk、sed用法
热门文章
- Openresty最佳案例 | 第4篇:OpenResty常见的api
- 科大讯飞CV赛baseline:图像分类实践+0.55
- 重磅!2022QS世界大学排名公布!
- 超越BN-ReLU!谷歌大脑等提出EvoNorms:归一化激活层的进化
- 人生和算法结合起来,你会不会比现在混得好?看完我明白了!
- 图片管理之删除SKU表数据
- 汇编语言(王爽 第三版)检测点9.1 解决-a无法输入jmp dword ptr es:[1000h]
- 多项式加法C语言_只愿与一人十指紧扣_新浪博客
- 干货 | MTCNN实时人脸检测网络详解与代码演示
- asp.net 页面中点击按钮后无反应的解决方法