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. Angular目录结构

    一. Angular目录结构 e2e:在e2e/下是端到端测试 node_modules:安装的第三方模块都在这,使用npm install安装的1 Src:我们项目的所有文件 { App:组件,以a ...

  2. 如何分析和研究Log文件 ,如何看日志信息

    如何分析和研究Log文件 ,如何看日志信息 . Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处 ...

  3. mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.

    mongoose报错:(node:15689) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes ...

  4. 解决掉你心中 js function与Function的关系的疑问

    前言 在网上有很多关于js function 与 Function直接关系的文章. 但是我感觉过于抽象化了,那么如何是具体化的解释? 正文部分为个人理解部分,如有不对望指出. 正文 <scrip ...

  5. ES6 - 基础学习(6): 对象扩展

    对象对于JavaScript至关重要,在ES6中对象又加了很多新特性. 对象字面量:属性的简洁表示法 ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值. let attr1 = & ...

  6. Android布局管理器-使用LinearLayout实现简单的登录窗口布局

    场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...

  7. 论AMD内核如何使用Android Studio虚拟机

    其实之前和老师求证过AMD内核要用虚拟机的话应求助第三方模拟器(不然速度太慢)或直接使用真机测试,当时拿着虚拟机的报错简单搜索了下只翻到了一个用谷歌第三方工具的(检索时关键词不对的锅),觉得麻烦就没去 ...

  8. Charles证书下载报Name lookup failed

    背景 1.charles https抓包需要在手机上安装证书. 2.近期疫情影响,通过openVPN远程办公. 问题现象 按照网上教程配置好charles proxy配置,证书安装的时候,iPhone ...

  9. BUGFIX 09 - 记一次Java中String的split正则表达式匹配 - 引发`OutOfMemoryError: Java heap space`的oom异常 排查及解决 -Java根据指定分隔符分割字符串,忽略在引号里面的分隔符

    问题简述 说白了,Java根据指定分隔符分割字符串,忽略在引号(单引号和双引号)里面的分隔符; oom压测的时候,正则匹配"(?=(?:[^\"]*\"[^\" ...

  10. git rm与git rm --cached的区别

    git rm与git rm --cached的区别 当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用. git rm file_path git commit -m 'd ...