linux--nginx学习
nginx
1.nginx安装编译
1.yum install nginx(自动解决依赖)
2.源代码编译安装(优秀,自由选择软件版本,自定义第三方功能比如开启https)
3.rpm手动安装(垃圾)
2.下载tengine
最好别再root在操作,在opt在执行该条命令
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
3.解压缩
ls查看下载后的文件
解压缩:tar -zxvf tengine-2.3.2.tar.gz
进入解压缩后的文件:cd tengine(解压缩后的)
4.编译
4.1指定安装路径
./configure --prefix=/opt/tbnginx/     /opt/tbnginx/ 为安装路径
4.2开始编译
make命令  生成makefile
4.3开始安装
make install
5.配置环境变量
进入到	tengine下的sbin目录
需要把PATH写入/etc/profile #每次开机都加载
	vim /etc/profile
把PATH写入到环境变量中:					   PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin"
手动读取,让PATH生效
	source /etc/profile
6.启动nginx,检查进程,端口
检查进程:ps aux | grep nginx
检查端口:netstat -tunlp | grep 80
直接输入nginx命令,第一次是启动nginx
nginx -s stop  #停止
nginx -s reload  #平滑重启,不停止进程,重新读取配置文件
nginx  -t  #检测nginx.conf语法是否正确,更安全
在浏览器中输入IP:端口访问
7.nginx的配置文件
[root@bogon tbnginx]# ls
	conf    存放nginx的配置文件
	html 	存放nginx静态文件的
	logs	nginx的运行日志,错误日志,访问日志
	sbin	存放可执行命令
nginx的静态文件服务功能
nginx.conf 中定义的server{}虚拟主机关键词定义
1.
	[root@bogon tbnginx]# cd tbnginx/
	[root@bogon tbnginx]# cd html/
2.
     [root@bogon html]# ls
		50x.html  index.html
	 执行 Vim index.html  #进入该问文件的编辑模式	
server{}定义虚拟主机功能
server {
        #定义网站的端口
        listen       81;
        #定义网站匹配的域名
        server_name  localhost;
        #server_name  _;
        #server_name  www.mypython.com;
    #定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
    #access_log  logs/host.access.log  main;
    #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
    # location作用是匹配url,如同 django的 url.py功能一样
    # 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
    location / {
       #这个root关键词 是定义静态文件存放目录的
        root   /opt/xx.html;
    #index参数,定义网站首页文件名的
        index  index.html index.htm;
    }
    #  这个location可以定义多个,比如 你想让 192.168.16.85:81/static/js/luffy.js
    location  /static  {
    #给路径添加别名
    alias   /opt/crm/static/;}
nginx的多虚拟主机功能
一台服务器,基于域名的不同,访问不同的网站资料
也就是准备2个server{}的定义
本地的hosts文件
C:\Windows\System32\drivers\etc\hosts
第一个server{ } 虚拟主机 ,www.pian.com
server {
				#定义网站的端口
				listen       80;
				#定义网站匹配的域名
				server_name  www.pian.com;
				#server_name  _;
				#server_name  www.mypython.com;
				#定义虚拟主机的访问日志功能,记录用户的ip,以及请求信息,和爬虫代理后面的真实ip等功能
				#access_log  logs/host.access.log  main;
				#access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
				# location作用是匹配url,如同 django的 url.py功能一样
				# 最低级匹配,当请求时 192.168.16.85:81/ 就进入如下location
				location / {
				   #这个root关键词 是定义静态文件存放目录的
					root   /opt/pian;
				#index参数,定义网站首页文件名的
					index  index.html index.htm;
				}
				#当你的请求时 www.pian.com/static/55kai.jpg
				location  /static  {
				#给路径添加别名
				alias   /opt/crm/static/;
                    	#http://www.pian.com/static/360wallpaper.jpg
		}
    }
第二个虚拟主机 www.xxlol.com
server {
	listen  80;
	server_name  www.xxlol.com;
	location  / {
	root  /opt/xxlol;
	index   index.html;
	}
}
nginx的访问日志功能
打开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;
    access_log  "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G"  main;
进入到cd tbnginx/logs
实时监测 :tail -f access.log
当再次访问的时候logs就会多一条 记录
nginx 404错误页面优化
        location / {
           #这个root关键词 是定义静态文件存放目录的
            root   /opt/pian;
        #index参数,定义网站首页文件名的
            index  index.html index.htm;
        }
			error_page  404              /404.html;
        对/404.html进行编辑或添加新的内容
        keepalive_timeout : 60
nginx配置反向代理
需要准备3台机器
1是客户端,发请求的
2是代理服务器,需要安装nginx,实现代理转发功能
3是资源服务器,提供数据的 
正确的操作应该是
准备一个windows机器,两个linux机器(一个是安装nginx用作代理,一个启动django提供数据)
我考虑到大家机器不行
解决办法
在一台linux上,启动一个nginx,第一个server{}虚拟主机标签,作用是反向代理
第二个server{}虚拟主机标签,模拟是另一台linux,提供数据的 
浏览器  ->  nginx  ->  django
浏览器  <-  nginx  <-  django
配置反向代理
server {
    listen       80;
    server_name  _;
    location / {
    #反向代理的参数
    proxy_pass   http://127.0.0.1:81;
    }
    error_page  404              /404.html;
}
nginx负载均衡
环境准备
准备四台机器
第一台是window,用于浏览器法请求
第二台个是nginx,安装nginx,进行请求分发,负载均衡 
第三台,讲道理,应该运行django
第四台,一样的,也是运行django代码
在一个linux机器上,安装一个nginx软件,通过多个server{}模拟多台机器的工作
nginx的环境准备,nginx.conf配置文件
#通过upstream关键词,定义服务器地址池
upstream  server  {
server  127.0.0.1:81;
server  127.0.0.1:82;
server  127.0.0.1:83;
}
   #定义第一个虚拟主机 server{} ,功能是 进行反向代理,负载均衡
   server {
		listen 80;
		server_name _;
		location  /  {
		proxy_pass http://myserver;
}
}
#第二个server,模拟第一台django
server  {
listen  81;
server_name _;
location  /  {
	root  /opt/django1;
	index  index.html;
}
}
#定义第三个server,模拟第二台django
server {
  listen 82;
server_name  _;
location  / {
  root  /opt/django2;
  index  index.html;
}
}
#定义第四个server,模拟第三台django,讲道理,这三台django应该提供一样的数据
server {
  listen 83;
server_name  _;
location  / {
  root  /opt/django3;
  index  index.html;
}
}
nginx的负载均衡规则
1.轮训机制 ,每个机器,解析一次
2.权重机制 ,哪台机器的权重高,请求优先发给谁,有权重比例设置
		upstream  myserver  {
	server  127.0.0.1:81 weight=1;  # weight权重 安比例分配
	#server  127.0.0.1:82 weight=3;
	server  127.0.0.1:83 weight=4;
	}
3.ip_hash  ,真对用户的ip地址得到哈希值,永久发给一台机器 ,ip哈希方式,不得和权重一起用
	#通过upstream关键词,定义服务器地址池
	upstream  myserver  {
	server  127.0.0.1:81 ;
	#server  127.0.0.1:82 ;
	server  127.0.0.1:83 ;
	ip_hash;
	}
4.url_hash  ,不用 
linux--nginx学习的更多相关文章
- Nginx学习系列二Linux下Nginx实现负载均衡
		关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ... 
- Linux 内核学习的经典书籍及途径
		from:http://www.zhihu.com/question/19606660 知乎 Linux 内核学习的经典书籍及途径?修改 修改 写补充说明 举报 添加评论 分享 • 邀请回答 ... 
- Nginx学习笔记4 源码分析
		Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ... 
- Nginx学习笔记~目录索引
		回到占占推荐博客索引 前几天整理了<Docker的学习笔记索引>,受到了很多朋友的关注,今天把Nginx的文章也整理一下,以后将永久更新,像大叔之前的<EF文章系列>,< ... 
- Asp.net Core 打包发布 (Linux+Nginx)
		如果你觉得如下这些文章对你有帮助,请点击链接支持作者原创 http://www.cnblogs.com/savorboard/ .Net Core SDK 命令介绍 前言 本篇主要介绍 asp.n ... 
- centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)
		centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Ng ... 
- Linux 系统学习梳理_【All】
		第一部分---基础学习 00.Linux操作系统各版本ISO镜像下载 00.Linux系统下安装Vmware(虚拟机) 00.Linux 系统安装[Redhat] 00.Linux 系统安装[Cent ... 
- Linux服务器学习(二)
		昨天简单了解了linux的基础命令,今天学习linux搭建环境(安装文件,配置文件)及权限操作. 一.搭建lnmp环境 lnmp指Linux+Nginx+Mysql+PHP Ubuntu安装文件命令为 ... 
- Linux - nginx基础及常用操作
		目录 Linux - nginx基础及常用操作 Tengine淘宝nginx安装流程 nginx的主配置文件nginx.conf 基于域名的多虚拟主机实战 nginx的访问日志功能 网站的404页面优 ... 
- Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器
		目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ... 
随机推荐
- Nexus 安装运维手册
			1. Nexus 安装与配置 1.1 下载Nexus 登录https://www.sonatype.com/download-oss-sonatype,下载最新的Nexus版本. 我这里使用的是nex ... 
- TCP协议可靠性是如何保证之滑动窗口,超时重发,序列号确认应答信号
			原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 是一种提供可靠性交付的协议. 也就是说,通过 TCP 连接传输的数据,无差错.不丢失.不重复.并且按序到达. 但是在网络 ... 
- mac 经常使用的快捷键操作
			##### touch bar 作用1: 打开项目的一些快捷操作键. 作用2: 右侧的< 打开有一些以前的常规操作. ##### 手势 ##### mac自带的一些操作 cmd + opt + ... 
- (数据科学学习手札78)基于geopandas的空间数据分析——基础可视化
			本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 通过前面的文章,我们已经对geopanda ... 
- jenkin docker node 自动化部署配置
			jenkins 安装必须插件 NodeJS Plugin Publish Over SSH 1:新建一个任务,选择构建一个自由风格的软件项目 2:源码管理选择Git 2.1 填写Git项目地址Repo ... 
- opencv —— contourArea、arcLength 计算轮廓面积与长度
			计算轮廓面积:contourArea 函数 double contourArea(InputArray contour, bool oriented = false); contour,输入的二维点集 ... 
- PS切图工具
			缓存设置: 编辑-首选项-暂存盘 改完除了C盘之外的其他盘 单位设置: 编辑-首选项-单位与标尺 将单位修改成像素 PS预设: 工具 (窗口-工具) 标尺 (视图-标尺) 图层 (窗口-图层 ... 
- nginx location展示及文件共享
			nginx 目录展示及文件访问 效果: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5G9wfKK-1570116907804)(E:\Users\FangJunX ... 
- MySQL基础篇(02):从五个维度出发,审视表结构设计
			本文源码:GitHub·点这里 || GitEE·点这里 一.数据场景 1.表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的 ... 
- [Linux] git add时的注意事项
			git add -A 提交所有变化 git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new) git add . 提交新文件(new)和被修改( ... 
