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启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
随机推荐
- git-bash用法详解
目录 1. 开启Windows的 sshd 服务 1.1. ssh 高级配置 1.1.1. 生成秘钥 1.1.2. 添加或更改密码 1.1.3. 分发公钥 1.1.4. 允许以root身份ssh连接 ...
- webtatic源
我们在安装php时,系统的yum源中php版本太老,但是编译安装又太烦,这时我们可以使用webtatic源来yum安装较新版本的php. webtatic源: https://mirror.webta ...
- 有没有人想和我一起编写 Clear Writer 的?
合作内容 程序编写 了解 JS.HTML.CSS 等基础前端技能,了解 Electron 开发. 翻译 熟练运用一门外语(中文英文除外),书面表达过关. 报酬 在 Github 上本项目里面的 REA ...
- BT.656视频信号解码
BT.656视频信号解码 BT.656协议标准 ITU-R BT.601和ITU-R BT.656是ITU-R(国际电信联盟)制定的标准.严格来说ITU-R BT.656是ITU-R BT.601 ...
- 【环境安装】Docker安装
[环境安装]Docker安装 CentoOS-7 安装步骤: 1.卸载已经安装的Docker sudo yum remove docker \ docker-client \ docker-clien ...
- Fabric网络组织与主节点选举
一.Fabric网络组织 Fabric网络组织按如下结构组成:Fabric网络-->Channel通道-->组织(成员)-->节点.即整个网络由数个通道组成,每个通道都由多个组织构成 ...
- Beta冲刺--冲刺总结
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 Beta冲刺--冲刺总结 作业正文 如下 其他参考文献 ... Beta冲刺 ...
- 微信小程序-APP生命周期与运行机制
QQ讨论群:785071190 开发微信小程序之前需要先了解微信小程序运行机制以及其生命周期,小程序APP生命周期需要先从app.js这个文件开始. 阅读过"微信小程序-代码构成" ...
- 入门大数据---基于Zookeeper搭建Kafka高可用集群
一.Zookeeper集群搭建 为保证集群高可用,Zookeeper 集群的节点数最好是奇数,最少有三个节点,所以这里搭建一个三个节点的集群. 1.1 下载 & 解压 下载对应版本 Zooke ...
- Spring IoC 循环依赖的处理
前言 本系列全部基于 Spring 5.2.2.BUILD-SNAPSHOT 版本.因为 Spring 整个体系太过于庞大,所以只会进行关键部分的源码解析. 本篇文章主要介绍 Spring IoC 是 ...