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启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
随机推荐
- 代码点(code point)和代码单元(code units)
1. 解释一 char:Java中,char类型为16个二进制位,原本用于表示一个字符.但后来发现,16位已经不够表示所有的字符,所以后来发展出了代码点表示字符的方法. 代码点(code point) ...
- NAT网络地址转化和DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理.分配IP地址,使网络环境中的主机动态的获得I ...
- qemu-guest-agent详解
qemu guest agent简称qga, 是运行在虚拟机内部的一个守护程序(qemu-guest-agent.service),他可以管理应用程序,执行宿主机发出的命令. QEMU为宿主机和虚拟机 ...
- LNMP 环境更换Nginx 服务器为Tengine
本人之前所使用 LNMP 环境一直是原生的Nginx服务器,最近几天看了好多大网站使用 淘宝团队基于Nginx开发的 Tengine 决定给自己的虚拟机也装个玩玩. 关于Tengine的介绍就不多说了 ...
- 关于自动寻路(Navigation)的初级总结
1.使用Nav Mesh Link组件 该组件会实现寻路者从Start跳向end点 注意Player会优先选择最佳路线,且Start,End两个物体都应该在Walkable的区域上 2.使用Nav M ...
- 第四模块 :微服务调用链监控CAT架构和实践
采样率:每一个请求为都进行记录,或者100次请求为记录50次 各个开源框架都满足opentracing的标准,只要使用opentracing标准埋点的客户端,可以使用不同的客户端去展示,opentra ...
- 尚硅谷spring aop详解
spring的aop实现我们采用AspectJ的方式来实现,不采用spring框架自带的aop aspect实现有基于注解的方式,有基于xml的方式,首先我们先讲基于注解的方式,再将基于xml的方式 ...
- java 加密与解密艺术二
首先需要明确的是RSA的密钥对不能手动指定,需要通过代码系统生成 接下来我们来介绍下生成密钥对 package com.weiyuan.test; import java.security.KeyPa ...
- 6、struct2使用servlet的api函数
方法一: Struts2的Action访问Servlet API 可以通过实现装配接口没,完成对Servlet API的访问 * ServletRequestAware取得HttpServletReq ...
- Ajax实现文件上传(Spring MVC)
## 前端表单 和 JQuery jsp/html代码 使用JQuery <script src="static/js/jquery-3.4.1.js"></sc ...