安装使用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, ...
随机推荐
- Nginx(二)------nginx.conf 配置文件
上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...
- vscode快捷键大全
一般Ctrl + Shift + P,F1显示命令调色板 Ctrl + P快速打开,转到文件...Ctrl + Shift + N新窗口/实例 Ctrl + Shift + W关闭窗口/实例 Ctrl ...
- Java核心数据结构(List,Map,Set)原理与使用技巧
JDK提供了一组主要的数据结构实现,如List.Map.Set等常用数据结构.这些数据都继承自 java.util.Collection 接口,并位于 java.util 包内. 1.List接口 最 ...
- 阻止form表单中的input按下回车时提交表单
给form加属性:onsubmit="return false;"
- 牛客---java练习
一. 1. abstract可以修饰方法和类,不能修饰属性.抽象方法没有方法体,即没有大括号{}.抽象类中的成员属性都是public static final类型的:成员方法都是public abst ...
- D1. Great Vova Wall (Version 1)
链接 [https://codeforces.com/contest/1092/problem/D1] 题意 给你n个位置墙的高度,现在你有2×1 砖块,你可以竖直或者水平放置 问你是否可以使得所有位 ...
- UIAutomatorViewer 出现错误:Unable to connect to adb
最近升级了AndroidSDK,打开UIAutomatorViewer.bat,结果发现获取不了Android设备界面上的UI信息.经过一番努力,终于把这个问题解决了,详细过程如下: 1. Unabl ...
- jmeter的jtl日志转html报告常见报错笔记
问题:生成的jmeter文件可以放任意位置 输入命令转换hmtl报告 PS D:\user\80003288\桌面\Ques> jmeter -g .\test1.jtl -e -o .\rep ...
- Git的配置与使用
Git的配置与使用 一,未配置过git 1.1,安装Git https://git-for-windows.github.io/ 1,2,鼠标右键点击Git Bash Here 1.3,输入命令 cd ...
- [转帖]Huge Page 是否是拯救性能的万能良药?
Huge Page 是否是拯救性能的万能良药? 本文将分析是否Huge Page在任何条件下(特别是NUMA架构下)都能带来性能提升. 文章欢迎转载,但转载时请保留本段文字,并置于文章的顶部 作者:卢 ...