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学习的更多相关文章

  1. Nginx学习系列二Linux下Nginx实现负载均衡

    关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...

  2. Linux 内核学习的经典书籍及途径

    from:http://www.zhihu.com/question/19606660 知乎 Linux 内核学习的经典书籍及途径?修改 修改 写补充说明 举报   添加评论 分享 • 邀请回答   ...

  3. Nginx学习笔记4 源码分析

    Nginx学习笔记(四) 源码分析 源码分析 在茫茫的源码中,看到了几个好像挺熟悉的名字(socket/UDP/shmem).那就来看看这个文件吧!从简单的开始~~~ src/os/unix/Ngx_ ...

  4. Nginx学习笔记~目录索引

    回到占占推荐博客索引 前几天整理了<Docker的学习笔记索引>,受到了很多朋友的关注,今天把Nginx的文章也整理一下,以后将永久更新,像大叔之前的<EF文章系列>,< ...

  5. Asp.net Core 打包发布 (Linux+Nginx)

    如果你觉得如下这些文章对你有帮助,请点击链接支持作者原创 http://www.cnblogs.com/savorboard/ .Net Core SDK 命令介绍   前言 本篇主要介绍 asp.n ...

  6. centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)

    centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache   Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Ng ...

  7. Linux 系统学习梳理_【All】

    第一部分---基础学习 00.Linux操作系统各版本ISO镜像下载 00.Linux系统下安装Vmware(虚拟机) 00.Linux 系统安装[Redhat] 00.Linux 系统安装[Cent ...

  8. Linux服务器学习(二)

    昨天简单了解了linux的基础命令,今天学习linux搭建环境(安装文件,配置文件)及权限操作. 一.搭建lnmp环境 lnmp指Linux+Nginx+Mysql+PHP Ubuntu安装文件命令为 ...

  9. Linux - nginx基础及常用操作

    目录 Linux - nginx基础及常用操作 Tengine淘宝nginx安装流程 nginx的主配置文件nginx.conf 基于域名的多虚拟主机实战 nginx的访问日志功能 网站的404页面优 ...

  10. Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ...

随机推荐

  1. PHP常见代码执行后门函数

    PHP常见代码执行后门函数 代码执行: 应用程序在调用一些能够将字符串转换为代码的函数(例如php中的eval中),没有考虑用户是否控制这个字符串,将造成代码执行漏洞. 常见php代码执行函数介绍 常 ...

  2. 优雅的C#

    @符号:字符串中的转义符不转义,可支持字符串换行,例如:string test = "hello\\",正常输出hello\,改成string test = @"hell ...

  3. PyQt5官方教程+帮助文档+模块功能汇总

    写在开头 笔者自学PyQt5的过程中,在网上发现了不少友好的新手入门教程,比如: Archi的博客 PyQt5图形界面编程 但是学习PyQt5的最好方法是阅读官方文档 + 自己动手实践,笔者将分享官网 ...

  4. 进阶之路 | 奇妙的Animation之旅

    前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习清单: 动画的种类 自定义View动画 View动画的特殊使用场景 属性动画 使用动画的注意事项 一.为什 ...

  5. android sdk manager 无法更新,解决连不上dl.google.com的问题

    感谢博主的帮助,入口在这:https://www.jianshu.com/p/8fb367a51b9f?utm_campaign=haruki&utm_content=note&utm ...

  6. 使用PropTypes进行类型检查

    原文地址 1.组件特殊属性——propTypes 对Component设置propTypes属性,可以为Component的props属性进行类型检查. import PropTypes from ' ...

  7. 关于HashMap中的扰动函数的疑问

    最近再看jdk8的hashmap源码,当看到这一步的时候有点疑问,去网上搜了一下,看到的所有文章基本上都是一篇抄一篇的(反正目前各大社区就是这么个状况),那个意思就是让高16位也参与运算,增加结果的随 ...

  8. FIB表中 Next Hop 的几种状态码(drop/receive/attached/no route)的含义

    以一个例子来说明,假设有如下两个路由器R1,R2,且均配置了到达彼此环回地址的静态路由. (1.1.1.1/24)R1(Gig0/0)(.1)——12.0.0.0/24——(.2)(Gig0/0)R2 ...

  9. Mybaits(9)MyBatis级联-2

    一.鉴别器和一对多级联 1.完善体检表,分为男雇员体检和女雇员体检表 (1)持久层dao编写 package com.xhbjava.dao; import com.xhbjava.domain.Ma ...

  10. jQuery XSS漏洞

    漏洞成因: jQuery中过滤用户输入数据所使用的正则表达式存在缺陷,可能导致location.hash跨站脚本攻击. 演示程序: <!DOCTYPE html> <html lan ...