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启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
随机推荐
- SUBSTRING / CHARINDEX_函数随手练_2
SUBSTRING / CHARINDEX_函数随手练_2环境:MSSQL 2014(AdventureWorks2008R2附加到2014中的表 Location) /* Learning SQL ...
- (八)跑完用例后通过maven发送邮件
邮件类: package config; import com.sun.mail.util.MailSSLSocketFactory; import org.apache.log4j.Logger; ...
- cc32a_demo-32dk2j_cpp_纯虚函数与抽象类-txwtech
//32dk2j_cpp_纯虚函数与抽象类cc32a_demo-txwtech//纯虚函数是用来继承用的//纯虚函数//抽象类-抽象数据类型//*任何包含一个或者多个纯虚函数的类都是抽象类//*不要/ ...
- 12.实战交付一套dubbo微服务到k8s集群(5)之交付dubbo-monitor到K8S集群
dubbo-monitor官方源码地址:https://github.com/Jeromefromcn/dubbo-monitor 1.下载dubbo-monitor源码并解压 [root@hdss7 ...
- Nginx 如何自定义变量?
之前的两篇文章 Nginx 变量介绍以及利用 Nginx 变量做防盗链 讲的是 Nginx 有哪些变量以及一个常见的应用.那么如此灵活的 Nginx 怎么能不支持自定义变量呢,今天的文章就来说一下自定 ...
- [源码解析] 从TimeoutException看Flink的心跳机制
[源码解析] 从TimeoutException看Flink的心跳机制 目录 [源码解析] 从TimeoutException看Flink的心跳机制 0x00 摘要 0x01 缘由 0x02 背景概念 ...
- 1、struct2第一个项目登陆流程
这些jar包的作用:第一个日志记录 第二个 使用freemarker制作页面,freemarker和jsp一样都是页面操作的 ognl是struct2提供的向el标签设置的包 struct2-core ...
- Vue数据更新页面没有更新问题总结
Vue数据更新页面没有更新问题总结 1. Vue无法检测实例别创建时不存在于data中的property 原因: 由于Vue会在初始化实例时对property执行getter/setter转化,所以p ...
- Flutter开发初探
目前跨端开发比较热门的就是 React Native 和 Flutter 了,到底该选哪门技术似乎也快成了大前端圈的一个热门话题.对于web前端来说,基于web生态的 React Native 应该是 ...
- 解决IE浏览器中点击按钮上传无效的问题
前几天写了上传功能,点击按钮上传,在谷歌中是没有任何问题的: 但是在IE浏览器中点击没有任何效果 源代码如下: 后来发现在Firefox.IE浏览器中button标签内部可以含有其他标签,但是不能对 ...