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相关推荐

  1. Linux安装telnet服务、telnet 命令用法

    前言 环境:centos 7.9 Telnet命令经常被用于测试远程端口通不通,telnet命令既可以在Windows下使用,也可以在Linux下使用. Windows下使用telnet命令 开启te ...

  2. lnmp之php5.6.29安装

    linux下lnmp环境之php安装 为了防止出现缺失,安装下面集成,复制的时候请将这个复制成一个整行,下面3行是一整行 [root@localhost src]# yum -y install gc ...

  3. 互联网企业安全高级指南3.5 选择在不同的维度做防御

    3.5 选择在不同的维度做防御 攻击的方法千千万万,封堵同一个安全风险的防御方法往往不止一种,如何选择性价比最高的手段是甲方安全从业者需要权衡的. 1. 技术实现维度场景 在纵深防御的概念中(参考后面 ...

  4. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)

    # 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...

  5. centos7子系统 win10_Windows10内置Linux子系统初体验

    WSL 前言 前段时间,机子上的 win10 又偷偷摸摸升级到了一周年正式版,比较无奈.不过之前听闻这个版本已经支持内置的 Linux 子系统,于是就怀着好奇心试玩了一把.虽然期间遇到了很多问题,但总 ...

  6. Docker技术研究

    文章目录 一.Docker入门 1.Docker对比虚拟机 1.镜像 查看所有镜像 docker打标签 查看镜像的详细信息 只搜索关注度1000以上的镜像 删除镜像 导出镜像 导入镜像 上传镜像 2. ...

  7. CentOS下安装vsftpd

    因为FTP的端口是 两个,一个是固定21端口,还有一个任意端口的数据通道.关键是任意端口不好搞. 首先在vsftpd的配置文件中设置 任意端口的范围 [root@localhost root]# vi ...

  8. Linux进程管理(ps,pgrep,kill,killall,pkill,nohup,bg,fg)

    文章目录 Linux进程管理 什么是进程?什么是线程?二者的区别? Linux进程管理命令 ps命令 使用方法案例 ps带减号和不带减号的区别 查看进程树的命令pstree pgrep命令 kill命 ...

  9. zabbix自动发现与监控内存和CPU使用率最高的进程

    监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用za ...

最新文章

  1. vue element upload 控件用form-data上传方式导入xls文件
  2. C++字符串数组排序技巧
  3. 4K P60 444 相关的事
  4. 行家来信 | 我在国际AI开源组织LFAI当董事的200天
  5. python自学视频-师傅带徒弟学Python:第一篇Python基础视频课程
  6. java简易计算器考察什么_练习:用java写一个简易计算器
  7. 前端学习(2628):node.js中LTS和Current的区别
  8. 德标螺纹规格对照表_抚顺船用外螺纹铜减压阀带NK船检证书
  9. PYTHON语言之常用内置函数
  10. 三个故事看懂了再结婚(转)
  11. 便宜可靠的激光雷达可能要来了!Luminar关键部件成本降到3美元
  12. 设计模式(7)——适配器模式
  13. 使用JMH做Java微基准测试:JMH(Java Micro Benchmark) 简介
  14. JavaScript之数组学习
  15. 广州天河租房随笔记录
  16. word双面打印的方法
  17. 《史蒂夫·乔布斯传》——童年篇有感
  18. 2018年 新年目标
  19. a标签href的几种写法
  20. shell脚本、awk、sed用法

热门文章

  1. Openresty最佳案例 | 第4篇:OpenResty常见的api
  2. 科大讯飞CV赛baseline:图像分类实践+0.55
  3. 重磅!2022QS世界大学排名公布!
  4. 超越BN-ReLU!谷歌大脑等提出EvoNorms:归一化激活层的进化
  5. 人生和算法结合起来,你会不会比现在混得好?看完我明白了!
  6. 图片管理之删除SKU表数据
  7. 汇编语言(王爽 第三版)检测点9.1 解决-a无法输入jmp dword ptr es:[1000h]
  8. 多项式加法C语言_只愿与一人十指紧扣_新浪博客
  9. 干货 | MTCNN实时人脸检测网络详解与代码演示
  10. asp.net 页面中点击按钮后无反应的解决方法