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启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
随机推荐
- @bzoj - 3711@ [PA2014]Druzyny
目录 @description@ @solution@ @accepted code@ @details@ @description@ 体育课上,n个小朋友排成一行(从1到n编号),老师想把他们分成若 ...
- 使用nodejs的puppeteer库爬取瓜子二手车网站
const puppeteer = require('puppeteer'); (async () => { const fs = require("fs"); const ...
- (四)Parameters,简单参数就用这个
Parameters注解在测试方法上指定参数列表,然后在测试方法中声明对应的形参,形参与参数列表一一对应,但名字可以不同,如下所示: public class Test1 { @Parameters( ...
- Rust 数据类型
Rust中的每个值都具有特定的数据类型. 基础类型: 整数,浮点数,布尔值和字符 i8,i16,i32,i64,i64,i128,isize, u8,u16,u32,u64,u64,u128,usiz ...
- cb51a_c++_STL_算法_根据第n个元素排序nth_element
cb51a_c++_STL_算法_根据第n个元素排序nth_elementnth_element(b,n,e),比如最大的5个数排序,或者最小的几个数nth_element(b,n,e,p)对比:pa ...
- Python数据可视化实战:实时更新海外疫情数据,实现数据可视化
前言 我国的疫情已经得到了科学的控制,开始了全面的复工复产,但是国外的疫情却“停不下来”.国外现在可谓就是处于水深火热当中啊,病毒极强的传染性,导致了许多的人都“中招”了,我国已经全面复工复产了,人大 ...
- ThinkPHP 5接阿里云短信接口
1.首先将api_sdk文件放入vendor文件夹下 2.在config文件中作相应的配置 3.封装发送短信的方法 4.调用发送短信方法
- Centos7 GRE Tunnel
一.关闭防火墙及selinux 二.CentOS7默认不加载gre内核模块,加载gre内核模块 # modprobe ip_gre 临时加载gre模块(重启后失效) # lsmod |grep g ...
- MPC控制初长成——我陷过的误区
真正接触控制一个多月,现记录自己的误区,以警示自己: 1 . 离散与连续 我经常会拿到连续的系统,用离散的方式去控制,然后反复找原因,还是找不到.要记住:离散和连续要分开!!!,网上的例子大都是连续的 ...
- 洛谷P1220关路灯【区间dp】
题目描述 某一村庄在一条路线上安装了 \(n\) 盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯 ...