Linux05 /nginx
Linux05 /nginx
1. nginx安装、配置
nginx的安装/启动
1、编译安装nginx
1.yum install nginx(自动解决依赖),自动将各种包安装到了对应的位置
查看yum安装各个包所在的位置:rpm -ql nginx
2.源代码编译安装(优秀,自由选择软件版本,自定义第三方功能比如开启https)--- 使用
3.rpm手动安装(垃圾)
# 编译安装步骤:
1.下载tengine/nginx源码包
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz 2.解压缩源码:
tar -zxvf tengine-2.3.2.tar.gz 3.编译三部曲
第一曲:指定安装路径
./configure --prefix=/opt/tbnginx/
第二曲:开始编译,生成makefile
make
第三曲:开始安装
make install 4.配置nginx的环境变量,需要把PATH写入/etc/profile,每次开机都加载
vim /etc/profile
PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tbnginx/sbin" 5.手动读取,让PATH生效
source /etc/profile
2、启动nginx,检查进程,端口
直接输入nginx命令,第一次是启动nginx
nginx -s stop # 停止
nginx -s reload # 平滑重启,不停止进程,重新读取配置文件
nginx -t # 检测nginx.conf语法是否正确,更安全
nginx的配置文件
1、nginx文件夹下文件介绍
[root@s24_linux tbnginx]# ls
conf 存放nginx的配置文件
html 存放nginx静态文件的
logs nginx的运行日志,错误日志,访问日志
sbin 存放可执行命令
2、nginx配置文件
# server{}是定义虚拟主机功能
server {
# 定义网站的端口
listen 80;
# 定义网站匹配的域名
server_name localhost;
# server_name _;
# server_name www.lbzhk.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/html;
# index参数,定义网站首页文件名的
index index.html index.htm;
}
# location可以定义多个,想让 192.168.16.85:81/static/js/jquery.js
location /static {
# 给路径添加别名
alias /opt/crm/static/;
}
2. nginx的多虚拟主机功能
简单概述:
1、一台服务器,基于域名的不同,访问不同的网站资料,也就是准备2个server{}的定义
2、修改本地的hosts文件 C:\Windows\System32\drivers\etc\hosts
第一个server{}虚拟主机 ,www.s1.com
server {
# 定义网站的端口
listen 80;
# 定义网站匹配的域名
server_name www.s1.com;
# server_name _; # 定义虚拟主机的访问日志功能,记录用户的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/s1html;
# index参数,定义网站首页文件名的
index index.html index.htm;
}
# 当你的请求时 www.s24pian.com/static/55kai.jpg
location /static {
# 给路径添加别名
alias /opt/crm/static/;
} }
第二个虚拟主机 www.s2.com
server {
listen 80;
server_name www.s2.com;
location / {
root /opt/s2html;
index index.html;
}
}
3. nginx的访问日志功能,404页面功能
nginx的访问日志功能,404页面功能,都是打开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;
404错误页面优化(找到一个server{}标签的配置,添加一行代码即可 )
location / {
# root关键词 是定义静态文件存放目录的
root /opt/s1;
# index参数,定义网站首页文件名的
index index.html index.htm;
}
# nginx错误页面的定义
error_page 404 /404.html;
4. nginx的反向代理、负载均衡
简述
浏览器客户端 + nginx反向代理 | 躲在防火墙后面 服务器+django
1.需要准备3台机器
1是客户端,发请求的
2是代理服务器,需要安装nginx,实现代理转发功能
3是资源服务器,提供数据的 2.正确的操作应该是:
准备一个windows机器,两个linux机器(一个是安装nginx用作代理,一个启动django提供数据) 3.在一台linux上,启动一个nginx,第一个server{}虚拟主机标签,作用是反向代理
第二个server{}虚拟主机标签,模拟是另一台linux,提供数据的
配置反向代理
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代码
nginx负载均衡的环境准备,nginx.conf配置文件如下
# 通过upstream关键词,定义服务器地址池
upstream s1server {
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://s1server;
}
} # 第二个server,模拟第一台django
server {
listen 81;
server_name _;
location / {
root /opt/s1django1;
index index.html;
}
}
# 定义第三个server,模拟第二台django
server {
listen 82;
server_name _;
location / {
root /opt/s1django2;
index index.html;
}
} # 定义第四个server,模拟第三台django,讲道理,这三台django应该提供一样的数据
server {
listen 83;
server_name _;
location / {
root /opt/s1django3;
index index.html;
}
}nginx的负载均衡规则
1.轮训机制 ,每个机器,解析一次
2.权重机制 ,哪台机器的权重高,请求优先发给谁,有权重比例设置
3.ip_hash ,针对用户的ip地址得到哈希值,永久发给一台机器 ,ip哈希方式,不得和权重一起用
4.url_hash ,一般不会使用
# 通过upstream关键词,定义服务器地址池
# 权重机制示例:
upstream s24server {
server 127.0.0.1:81 weight=1;
server 127.0.0.1:83 weight=4;
} # ip_hash示例:
upstream s24server {
server 127.0.0.1:81 ;
server 127.0.0.1:83 ;
ip_hash;
}
Linux05 /nginx的更多相关文章
- accept_mutex与性能的关系 (nginx)
注:运行环境CentOS 6+ 背景 在对启动了20个worker的nginx进行压力测试的时候发现:如果把配置文件中event配置块中的accept_mutex开关打开(1.11.3版 ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- 【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
一.反向代理:Web服务器的“经纪人” 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- nginx+php的使用
原文来自:windows下配置nginx+php环境 按照他的步骤走,亲测可用! 但是这里他后面说的根目录可能有些人有点懵. 其实在设置的时候就设置了: 网站根目录就是www这个目录,如果没创建请自行 ...
- nginx的使用
1.nginx的下载 解压后文件目录: 2.nginx的常用命令 nginx -s stop 强制关闭 nginx -s quit 安全关闭 nginx -s reload 改变配置文件的时候,重 ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- nginx源码分析之模块初始化
在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
随机推荐
- kali系统安装google拼音
1.设置多线程下载 /bin/bash -c "$(curl -sL https://git.io/vokNn)" 2.打开终端,输入下面的命令 apt-fast install ...
- 小师妹学JVM之:GC的垃圾回收算法
目录 简介 对象的生命周期 垃圾回收算法 Mark and sweep Concurrent mark sweep (CMS) Serial garbage collection Parallel g ...
- 昇腾AI计算,618冲动消费也不怕
摘要:近期大热的图像识别处理核赔技术,可应对剁手党们冲动购物之后汹涌而至的退货场景.那么,这背后运用的技术原理是怎样? AI计算平台又能否重构企业业务引擎呢? 随着AI技术的挖掘与应用落地,也为每一年 ...
- 成为python程序员,对疫情过后的毕业生来说,真是一个不错的方向吗?
Python最近几年,一直被炒得很火,这其中有商业因素,但更重要的是即将到来的人工智能时代,而python就恰好是最适合的编程语言. 所以无论是在职的人,还是在校的学生,都想着跟上这一趋势,但,在今年 ...
- READSJC.md
这个作业属于哪个课程 软件工程 这个作业要求在哪里 点我 这个作业的目标 介绍自己 作业正文 往下看啦 其他参考文献 空空如也 介绍自己: 我是综合实验班的孙劼成. 天天宅在家里实在是太无聊了,就背背 ...
- vue-admin-template搭建后台管理系统的学习(一)
首先我们来看看这个基础模版的目录结构 ├── build // 构建相关 ├── config // 配置相关├── src // 源代码│ ├── api // 所有请求│ ├── ass ...
- c++构造函数的调用方法
#include<iostream> using namespace std; class Base { public: Base(){ cout<<"hello&q ...
- [ 头皮发麻 A1 ] 队内赛3 2020 Ateneo de Manila University DISCS PrO HS Division
都是英语阅读题 但是本菜鸡就过了一题,直接自闭mmp明天开始起床一版题 传送门 B.Riana and the Blind Date 0是闰年?惊了 后来才知道整除被除数可以为0 闰年的计算方法 \( ...
- Python实用笔记 (25)面向对象高级编程——多重继承
class Dog(Mammal, Runnable): pass 多重继承,继承了不同大类的所有功能,这种设计称之为Mixln,其目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过 ...
- .NET Core WEB API接口参数模型绑定
.NET Core WEB API 模型绑定方式有以下表格中的几种: 特性 绑定源 [FromHeader] 请求标头 [FromQuery] 请求查询字符串参数 [FromForm] 请求正文中的表 ...