安装使用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:\Windows\System32\drivers\etc
写入如下配置
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
安装使用nginx的更多相关文章
- centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置
前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬 ...
- Cenos7 编译安装 Mariadb Nginx PHP Memcache ZendOpcache (实测 笔记 Centos 7.0 + Mariadb 10.0.15 + Nginx 1.6.2 + PHP 5.5.19)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...
- mac 安装 php nginx mysql
mac下面安装php nginx mysql根linux下面差不多,建议大家使用brew管理工具包安装. 1,安装homebrew http://brew.sh/index_zh-cn.html 安装 ...
- centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记 目录[-] 过程 1.安装RVM 2.利用rvm安装 Ruby 1.9.3 并设为默认 3.安装rails 4.安装 ...
- Ansible安装配置Nginx
一.思路 现在一台机器上编译安装好nginx.打包,然后在用ansible去下发 cd /etc/ansible 进入ansible配置文件目录 mkdir roles/{common,install ...
- linux上安装fastdfs+nginx+ngin-module实践并解决多个异常篇
为什么选择Nginx Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主 ...
- ELK 6安装配置 nginx日志收集 kabana汉化
#ELK 6安装配置 nginx日志收集 kabana汉化 #环境 centos 7.4 ,ELK 6 ,单节点 #服务端 Logstash 收集,过滤 Elasticsearch 存储,索引日志 K ...
- centos7 下 安装部署nginx
centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...
- yum安装的Nginx添加第三方模块支持tcp
需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...
随机推荐
- mybatis源码-Mapper解析之SQL 语句节点解析(一条语句对应一个MappedStatement)
目录 一起学 mybatis 0 <sql> 节点解析 1 解析流程 2 节点解析 2.1 解析流程 2.2 <include> 节点的解析 2.3 Node.ELEMENT_ ...
- JAVABEAN递归转MAP实现
之前想找这么一个方法,找到的都不是递归实现的,列表.MAP里面的都没转,就自己折腾了个.——YOYO public class ObjectToMap{ public static Map objec ...
- GC调优入门笔记
想给项目代码做做调优但有许多疑惑,比如有哪些参数要调.怎么调.使用什么工具.调优的效果如何定量测量等.发现Oracle的这份资料不错,简洁直接,回答了我的许多问题,给了许多很实用的大方向上的指导.将其 ...
- 【深度学习】一文读懂机器学习常用损失函数(Loss Function)
最近太忙已经好久没有写博客了,今天整理分享一篇关于损失函数的文章吧,以前对损失函数的理解不够深入,没有真正理解每个损失函数的特点以及应用范围,如果文中有任何错误,请各位朋友指教,谢谢~ 损失函数(lo ...
- Jmeter(三十六)_运行过程中改变负载
顾名思义,jmeter在做性能测试时,可以在不停止脚本的情况下修改负载压力,达到期望的测试效果.我们将通过Constant Throughput Timer(吞吐量计时器)和Beanshell服务器来 ...
- 二十二:制作app的时候超出部分不能滑动
给需要滑动的区域写以下样式(父级是浏览器) position: absolute; left: 0; right: 0; bottom: 0; top: 0; overflow-x: hidden; ...
- C. Painting the Fence
链接 [https://codeforces.com/contest/1132/problem/C] 题意 就是有个n长的栅栏,然后每个油漆工可以染的区域不同 给你q让你选出q-2个人使得被染色的栅栏 ...
- AtCoder Beginner Contest 116 D - Various Sushi (贪心+栈)
D - Various Sushi Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400400 points Problem Statement ...
- 线程锁(互斥锁Mutex)及递归锁
一.线程锁(互斥锁) 在一个程序内,主进程可以启动很多个线程,这些线程都可以访问主进程的内存空间,在Python中虽然有了GIL,同一时间只有一个线程在运行,可是这些线程的调度都归系统,操作系统有自身 ...
- Django 2.0 学习
Django django是基于MTV结构的WEB框架 Model 数据库操作 Template 模版文件 View 业务处理 在Python中安装django 2.0 1 直接安装 pip inst ...