安装使用nginx

nginx的优势
是c语言开发的一个web框架  官方声称支持10W+的并发




天下武功 唯快不破   tengine+ uwsgi(多进程) + django  


你公司的技术栈是什么样?

centos7 +  python3.6  + mariadb  +  redis  +  django +  nginx  +  vue  +   git     便宜,免费



花钱的老企业,国企,外企

redhat   +  java  +  oracle  +  memcachd  +  tomcat  +  apache +  svn      闭源收费的技术栈


 

红帽操作系统有问题之后,有专业的红帽资格认证工程师,进行工单处理

认证都是需要花钱   
rhcsa  红帽系统管理  

rhce  红帽工程师认证    

rhca    红帽的架构师  




redis
yum install redis 

yum remove redis    卸载redis 
 

使用编译安装redis




nginx安装配置
1.编译安装nginx软件,此步非常重要,
1.编译安装nginx软件,此步非常重要,
1.编译安装nginx软件,此步非常重要,
1.编译安装nginx软件,此步非常重要,
1.编译安装nginx软件,此步非常重要,
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

1.下载源码包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

2.解压缩源码
tar -zxvf nginx-1.12.0.tar.gz

3.配置,编译安装  开启nginx状态监测功能
./configure --prefix=/opt/nginx112/


4.启动nginx,进入sbin目录,找到nginx启动命令

cd sbin
./nginx #启动
./nginx -s stop #关闭
./nginx -s reload #平滑重启 ,修改了nginx.conf之后,可以不重启服务,加载新的配置

5.分析nginx的工作目录,内容
[root@qishione nginx112]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp


conf   存放nginx的配置文件的
	nginx.conf 这里是控制nginx所有功能的文件
html   存放网页html的目录
	index.html 
logs   存放log日志文件

sbin    存放nginx可执行命令的
	nginx脚本命令
	
#user  nobody;nginx的工作进程数,以cpu核数为数量

cat  nginx.conf  核心配置如下

#定义nginx工作进程数
worker_processes  5;
#错误日志

#error_log  logs/error.log;
#http定义代码主区域
http {
    include       mime.types;
    default_type  application/octet-stream;
	#定义nginx的访问日志功能
	#nginx会有一个accses.log功能,查看用户访问的记录
	
    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;
    keepalive_timeout  65;
	#开启gzip压缩传输
    gzip  on;
	#虚拟主机1  定义一个 斗鱼网站 
    server {
		#定义nginx的访问入口端口,访问地址是  192.168.11.37:80
        listen       80;
		#定义网站的域名www.woshidouyu.tv
		#如果没有域名,就填写服务器的ip地址  192.168.11.37
        server_name  www.woshidouyu.tv;
		#nginx的url域名匹配
		#只要请求来自于www.woshidouyu.tv/111111111
		#只要请求来自于www.woshidouyu.tv/qweqwewqe
		#只要请求来自于www.woshidouyu.tv/qweqwewqe
		#最低级的匹配,只要来自于www.woshidouyu.tv这个域名,都会走到这个location
        location / {
			#这个root参数,也是关键字,定义网页的根目录
			#以nginx安装的目录为相对路径  /opt/nginx112/html 
			#可以自由修改这个root定义的网页根目录
            root   html;
			#index参数定义网站的首页文件名,默认的文件名
            index  index.html index.htm;
        }
		#错误页面的优化
        error_page  400 401  402  403  404   /40x.html;
}

}



nginx多虚拟主机的配置
1.在nginx.conf中添加两个虚拟主机标签  server{}
配置文件如下
    server {
        listen       80;
        server_name  qishijd.com;
        location / {
            root   /opt/jd;
            index  index.html index.htm;
        }
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
server {
listen 80;
server_name  qishitb.com;
location  /  {
root  /opt/tb;
index  index.html;
}
}



2.重启nginx,加载新的配置
nginx -s stop 
nginx 


3.修改windows的本地hosts解析文件,用于域名解析

windows的hosts文件路径
C:WindowsSystem32driversetc

写入如下配置
192.168.11.37  qishitb.com
192.168.11.37  qishijd.com


4.准备两个虚拟主机的 index.html文件
/opt/jd/index.html  写入  我是京东
/opt/tb/index.html   写入  我是淘宝


5.在windows浏览器中,查看两个域名对应到的虚拟主机
分别访问qishijd.com 域名
然后访问qishitb.com 域名,查看网站的资料的内容变化





nginx的错误页面优化的功能:
通过error_page参数定义错误页面的 html文件

 server {
        listen       80;
        server_name  qishijd.com;
        location / {
            root   /opt/jd;
            index  index.html index.htm;
        }
		#这个错误页面就应该存放在 /opt/jd/40x.html 
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

	
nginx访问日志功能
配置方式
1.修改nginx.conf配置文件,打开如下配置注释
	
    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;




nginx拒绝访问功能
在某一个虚拟主机下,顶一个deny参数,可以拒绝ip地址对虚拟主机的访问

server {
        listen       80;
        server_name  qishijd.com;
        #只要192.168.11.37这个ip访问 qishijd.com/
        location / {
            #deny  192.168.11.0/24;
            root   /opt/jd;
            index  index.html index.htm;
        }
        error_page  404              /40x.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }


	
nginx代理功能

生活中的代理

1.    代购 

我们花钱,  给 做代理的 这个人 ,,   这个代理 去国外买东西,邮寄给我们

2.  租房
个体  >   房东  
个体拿到钥匙 	<  房东给钥匙


个体  >   链家,房屋中介   >   链接代理手中,有房东的资源

个体   <   链接   <   房东  

www.luffycity.com/girl.jpg 

nginx只能处理服务器上的静态资源
css js  html  mp4 


动态资源
与数据库交互,从数据库中取出数据,这个资源
数据库数据变化的时候,用户是不会感知到的,请求的借口根本没有变化


www.luffycity.com/动态数据




发了一个  www.luffycity.com:80,丢给了服务器上的 nginx软件

www.luffycity.com/login  

用户  >  nginx    >    uwsgi(django)
用户  <  nginx    <   uwsgi(django)





nginx的反向代理功能
1.实验准备,准备2台nginx机器
机器1  192.168.11.37  用作  web服务器,用作数据返回
机器2  192.168.11.167   用作nginx反向代理服务器 



在windows中访问 代理服务器,然后让代理服务器 去拿 web服务器的数据

windows   >   192.168.11.158   >   192.168.11.37


windows   <   192.168.11.158   <   192.168.11.37


1.准备机器1,只是对数据页面的一个返回
server {
        listen       80;
        server_name  192.168.11.37;

        #charset koi8-r;
        location / {
            root   html;
            index  index.html index.htm;
        }

		}


2.准备机器2,用作nginx的反向代理服务器,这个机器不存数据,只转发请求
配置如下
server {
        listen       80;
        server_name  192.168.11.158;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		#在这里进行反向代理配置
		#192.168.11.158/
        location / {
	   proxy_pass http://192.168.11.37;
            #root   html;
            #index  index.html index.htm;
        }

}




nginx的负载均衡,顾名思义,
压力分担
1.集群是什么
一堆服务器做一件事

2.集群性能很高
淘宝本来的核心支付服务器是小型机,非常昂贵,且难以维护
后来都讲 服务器更换为集群架构
一堆便宜的服务器,维护者一个功能运转


3.高可用
单点机器很可能宕机
集群单机机器宕机,不会影响整体的运转


nginx负载均衡的配置
1.实验如下 
准备三台机器
机器1   nginx负载均衡器(发牌的荷官)   192.168.11.158   
	nginx.conf配置如下
	
		#定义nginx负载均衡池,里面默认是轮训算法
		#也可以用weight 权重算法
		#也可以用ip_hash 算法
		
		upstream nginx_pools {
			server  192.168.11.37  weight=10;
			server 192.168.11.167  ;
		}
		server {
			listen       80;
			server_name  192.168.11.158;

			#charset koi8-r;

			#access_log  logs/host.access.log  main;
			#在这里进行反向代理配置
			#192.168.11.158/
			location / {
			proxy_pass http://nginx_pools;
		}
		}




机器2   准备nginx  返回页面数据        192.168.11.37    
	nginx.conf配置如下
		    server {
				listen       80;
				server_name  192.168.11.37;
				location / {
					root   /opt/jd;
					index  index.html index.htm;
				}
				error_page  404              /40x.html;
				error_page   500 502 503 504  /50x.html;
				location = /50x.html {
					root   html;
				}
    }

		




机器3   也准备nginx  返回页面数据      192.168.11.167
 server {
        listen       80;
        server_name  192.168.11.167;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }


2.分别启动三台机器,三个nginx服务

3.在windows中访问负载均衡器的地址,查看请求分发,
访问  192.168.11.158





今日作业:
1.完成nginx的编译安装
2.完成nginx的多虚拟主机 
	提供qishijd.com 
	qishitb.com  
	访问到不同的页面

3.完成nginx的  404错误页面 

4.完成nginx的负载均衡配置 (项目部署就是通过 nginx转发请求给uwsgi的)





linux屏保安装
1.下载屏保软件源码包
wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a.tar.gz
2.解压缩源码包
tar -zxvf cmatrix-1.2a.tar.gz
3.进入源码包目录
cd cmatrix-1.2a/
4.释放编译文件
 ./configure --prefix=/opt/cmatrix/
 5.编译且安装
 make && make install 
 6.进入安装屏保软件的目录
 cd /opt/cmatrix/
 7.执行屏保命令
 ./bin/cmatrix
原文地址:https://www.cnblogs.com/Kingfan1993/p/10271732.html