nginx-初识

什么是epel?

EPEL的全称叫 Extra Packages for Enterprise Linux 。
EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。
装上了 EPEL之后,就相当于添加了一个第三方源。

如果既想获得 RHEL 的高质量、高性能、高可靠性,又需要方便易用(关键是免费)的软件包更新功能,
那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好适合你。
EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,
为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

su root
yum install epel-release -y

什么是nginx?

nginx俄罗斯人写的一个服务器应用软件。

服务器安装linux+软件nginx
nginx/apache 基于http协议(http协议是请求一次回应一次的短链接协议)

 

apache 与 nginx 的区别?


Apache:大而全,读写阻塞。

Nginx:轻量级,并发上不同于apache的网络io模型,采用epoll模型,异步非阻塞。效率高,并发。

 

nginx操作

安装epoll

nginx:web
nagios:监控

第一步,安装
su root
yum install epel-release -y
yum reinstall epoll-release -y
yum install nginx -y


第二步,写配置文件
vim /etc/nginx/nginx.conf
url:http://202.102.10.10:80
uri:http://202.202.10.10:80/a/b/ac.txt

第三步:重启
systemctl start nginx
systemctl status nginx

第四步:测试
systemctl stop firewalld(粗暴方式,在启动之前)
systemctl disable firewalld
systemctl enable nginx(开机启动)
操作内核防火墙iptables
想要nginx重新加载文件,重读内置文件,不要关闭重启

查看服务器日志
tail -f /var/log/nginx/access.log

  

 

linux设置并远程连接SSH:
如果需要远程连接SSH,需要把22端口在防火墙上开放。
关闭防火墙,或者设置22端口例外

(1)查询\安装SSH服务:
登陆linux系统,打开终端命令。
输入 rpm -qa |grep ssh 查找当前系统是否已经安装ssh

(2)启动SSH服务:
service sshd start
命令行输入 service sshd start 可以启动
或者使用 /etc/init.d/sshd start

(3)配置\查看SSHD端口3:
查看或编辑SSH服务配置文件,如 vi /etc/ssh/sshd.config
Port 22
Protocol 2
PermitRootLogin yes
如果要修改端口,把 port 后面默认的22端口改成别的端口即可
修改完重启ssh
service sshd restart

(4)设置sshd为系统自动启动:
[root@localhost /]# chkconfig --level 35 sshd on

(5)客户端远程连接SSH4:
ssh -t ada@127.0.0.1 -p 22

  

 

 正向代理和反向代理 

正向代理:一个客户端代理,隐藏了真实的客户端
反向代理:一个服务器代理,隐藏了真实的服务端

正向代理:注意所有用户使用一个代理和服务器交互
1)用户希望代理服务器帮助自己,和要访问服务器通信,为了实现此目标,需要以下工作:
用户IP报文的目的IP = 代理服务器IPb)
用户报文端口号 = 代理服务器监听端口号c)
HTTP 消息里的URL要提供服务器的链接
2)代理服务器可以根据c)里的链接与服务器直接通信
3)服务器返回网页
4)代理服务器打包3)中的网页,返回用户。


反向代理:用户直接和服务器交互,但是其实并不是一个服务器
1)需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上
2)服务器返回自己的服务到负载均衡设备
3)负载均衡将服务器的服务返回用户以上的潜台词是:
用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时,
解析得到的IP其实是负载均衡的IP,而不是服务器的IP,
这样有一个好处是,当新加入/移走服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。

其实就是在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,
当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,
可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,
对于用户来说,根本感觉不到任何差别。


正向代理中,proxy和client同属一个LAN,对server透明;
反向代理中,proxy和server同属一个LAN,对client透明。
实际上proxy在两种代理中做的事都是代为收发请求和响应,
不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。
他具有缓存、安全、负载均衡等作用,反向代理是和服务器集群在一起的,并且知道集群的内部情况。

所谓反向代理基本上就是一个服务端的负载均衡器。
正向代理:代理端代理的是客户端。
反向代理:代理端代理的是服务端。
一个是代理(v)客户端,为客户端收发请求,使真实客户端对服务器不可见。
一个是代理(v)服务器,为服务器收发请求,使真实服务器对客户端不可见。

普通代理,forward proxy,是服务于特定用户(比如说一个公司内 / 一个局域网内的客户)以访问非特定的服务;
反向代理,reverse proxy,是服务于非特定用户(对于公开互联网服务而言,通常是所有用户)以访问特定的服务。

 

如何配置nginx反向代理:

配置一组机器:关键字upstream

http {
    关键字upstream
    upstream pythonweb {
        ip-hash
        server 192.168.34.128:80;
        server 192.168.34.129:80;
        server 192.168.34.130:80;

    }

    server {
        listen 80;

        location / {
            后面是组名
            proxy_pass http://myapp1;
        }
    }
}

http://nginx.org/en/docs/http/load_balancing.html
round-robin — requests to the application servers are distributed in a round-robin fashion,
least-connected — next request is assigned to the server with the least number of active connections,
ip-hash — a hash-function is used to determine what server should be selected for the next request
 (based on the client’s IP address).

  

 

长轮询

长轮询,循环请求-应用程序服务器以循环方式分发,
最少连接-下一个请求被分配给服务器的最少数量的活动连接,
ip哈希,哈希函数-哈希函数用于确定下一个请求应该选择什么服务器(基于客户端的ip)

 

共享存储软件,网络文件系统:nfs,提供给客户端已经做好的东西,文件存储
基于rpc通信,要远程过程调用
yum install rpcbind nfs-utils -y

创建共享文件夹
mkdir /share

开辟空间
把第二块硬盘整个格式化成ext4文件系统!同时会覆盖掉原来到分区表!
mkfs.ext4 /dev/sdb


挂载到共享文件夹下
(在windows下接入外设(如插入U盘)就能自动识别。但是linux系统下,接入外设必须手动挂载)
将/dev/sdb1挂载到/share目录上,相当于访问/share实际上在访问/dev/sdb1
mount /dev/sdb1 /share

 

存储方式

文件存储:客户不能格式化,只能看,一切皆文件,随看随改
块存储:客户可以自己格式化,创建文件
对象存储:一个url地址对应一个文件,修改必须下载再上传覆盖

 

临时修改网卡临时绑定ip地址
ifconfig eno16777736 192.168.16.147


配置服务端,启动服务
vim /etc/exports
/share 192.168.31.0/24(rw,sync,fsid=0)

先为rpcbind和nfs做开机启动
systemctl enable nfs-server.service
systemctl enable rpcbind.service

启动必须先启动rpcbind服务
systemctl strat rpcbind.service
systemctl start nfs-serer.service

查看启动状态
systemctl status rpcbind.service
systemctl status nfs-server.service

查看共享的
exportsfs
或者
showmount -e
showmount -a

客户端:
showmount -e 192.168.16.147 看看服务器共享了什么
mount -t nfs 192.168.16.147:/share/var/www/html/
ls /var/www/html/
df

arping 127.0.0.1

  

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,
而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令.
使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等
总之大部分信息都是可以通过执行该命令得到的.

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;
如果想对进程时间监控,应该用 top 工具。

aux(辅助)

grep (global search regular expression(RE) and print out the line,
全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,
它能使用正则表达式搜索文本,并把匹配的行打印出来
ps aux |grep nginx

# systemctl restart nginx
# 在实际情况下,不能重启,必须开起来之后reload
#
# 停止防火墙,禁止防火墙
# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0 关闭seliunx
# getenforce 获取selinux状态

# 开启nginx
# systemctl start nginx
# systemctl reload nginx

  

 

posted @ 2017-09-06 17:32  Adamanter  阅读(155)  评论(0编辑  收藏  举报