nginx的功能和优缺点
nginx是一种服务器软件,将程序放在nginx服务器上,将程序发布出去,nginx是一种高性能的Http和反向代理服务器,同时也是一个代理邮件服务器,也可以实现负载均衡。
负载均衡:当同时有N个用户访问我们的服务器的时候,为了减轻服务器的压力,我们需要将用户分别引入各服务器,分担服务器的压力。
nginx能处理百万级tcp的连接,10以上的并发连接,并且是一个非常好的跨平台功能。
反向代理与负载均衡
正向代理:
有时候,用自己的计算机A想访问国外的某个网站B,但是访问不了,此时有一台中间服务器C可以访问国外的网站B,那么我们可以通过C来访问B这个网站,那么这个时候C就是代理服务器,这种访问是正向代理,正向代理有一特点,就是我们知道明确访问哪个网站。别
反向代理:
当我们有一个服务器集中,并且服务器集群中的每台服务器提供的内容一样的时候,同样我们要从个人电脑访问到集群中的服务器时无法访问,且此时第三方服务器能访问集群。这个时候通过第三方服务器访问集群的内容,但是此时我们不知道那一台服务器提供内容,此时的代理方式就是反向代理。
负载均衡:
可建立多个服务器建立一个集群,然后当用户访问我们的网站时,这时先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将访问的请求引入该服务器,这样每次用户的访问都会保证服务器集群中的每个服务器的压力处于平衡,这样就避免了服务器崩溃的情况。
Nginx安装操作:
wget下载:
进行安装:
tar -zxvf nginx-1.6.3.tar.gz
下载所需要的依赖文件:
yum install pcre yum install pcre-devel
yum listall zlib yum install zlib-devel
进行configure配置:
cd nginx-1.6.3 && ./configure --prefix=/usr/local/nginx
编译安装:
make && make install
启动与停止nginx:
cd/usr/local/nginx目录下:
conf:放置的都是配置文件
html:放置的都是网页程序
logs:放置的都是日志
sbin:代表这nginx程序
启动命令:
/usr/local/nginx/sbin/nginx 关闭(-s stop) 重启(-s reload)
ps -ef|grep nginx 查看进程号
kill -QUIT 9624 回车(9624是通过查看进程号的命令查看的) 从容停止
kill -TERM 9624 快速停止
查看配置文件是否正确的命令:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
成功:
查看是否成功(netstart -ano|grep 80)
失败:可能端口被占用
浏览器访问:http://localhost:80
nginx日志配置:
日志文件默认是有格式的,使用log_format指令来设置nginx服务器的日志文件的记录格式。
配置存储路径,access_log指令来配置。
不要日志文件,可以关闭:access_log off
配置文件自动切割:
进入cd /usr/local/nginx/logs
在logs目录下创建脚本文件:touch cutlog.sh
编辑 vim cutlog.sh,保存退出。
D=$(date +%y%m%d)
mv /usr/local/nginx/logs/access.log $(D).log
kill -USR1 $(cat /usr/local/nginx.pid)
执行crontab -e命令,进入如下,保存退出,全部完成
23 59 *** /bin/bash /usr/local/nginx/logs/cutlog.sh
负载均衡的实现:
location语法:表示url方式定位
基础语法有三种:
location = pattern{}精准匹配
location pattern{}一般匹配
location ~ pattern{}正则匹配
nginx语法:
if(条件为: =~ ~*) return break rewrite
-f是否为文件 -d是否为目录 -e是否存在
进入目录:
/usr/local/nginx/sbin/conf cd /usr/local/nginx/conf
新建一个touch fzjh.conf文件命令,vim进入配置:
user nobody; 声明用户
worker_processes 4; 开启的进程数
events{
worker_connections 1024; 最大的并发数量
}
http{
upstream my {
ip_hash;设置待选的服务器列表
server 182.18.22.2:80 weight(权重)=1;
server 118.144.78.52;
}
server{
listen 8089;设置监听的端口
location / {
选择访问哪个服务器,http://my(就是待选的名称)
proxy_pass http://my;
}
}
}
保存退出
加载fzjh.conf文件 命令:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/fajh.conf
打开浏览器输入:127.0.0.1:8089
HttpUpstream模块:
Upstream模块是nginx服务器的一个重要模块。
Upstream实现轮询和客户ip之间实现后端的负载均衡,常用的指令有:ip_hash、server、 upstream。
在Upstream模块中加入ip_hash,就会将同一个用户引向我们后端的同一个服务器。
server:server 182.18.22.2:80 weight=2;(权重,如果数字越大,权重就大,被访问到的概率就越高)。
upstream:是通过 proxy_pass http://my;来访问实现轮询的
nginx虚拟主机配置:
如果我们只有一台nginx服务器,我们可以对此进行虚拟主机配置。
就可以将一台nginx服务器分割为多台独立的子服务器。
有两个步骤:第一配置id,第二绑定ip地址与主机。
主设备配置:ifconfig eth0 192.168.1.1 netmask 255.255.255.0
分设备1:ifconfig eth0:1 192.168.1.7 broadcast 192.168.1.255 netmask 255.255.255.0
分设备2:ifconfig eth0:2 192.168.1.17 broadcast 192.168.1.255 netmask 255.255.255.0
进入 cd /usr/local/nginx/conf,ls查看目录 ,新建touch xnzj.conf配置文件
编辑vim xnzj.conf配置文件 保存
进入cd /usr/local/nginx,ls查看目录,进入cd html目录下
新建mkdir server1,和ss2两文件,在这两个中新建touch index.html文件
nginx缓存的配置:
当我们在浏览器中浏览某网页的内容时,我们会把这些内容存储到本地。
当我们第二次浏览的时候,这些内容就可以从本地加载,这样速度会快很多。
这就可以成为缓存,缓存也需要定期清理。
进入 cd /usr/local/nginx/conf 编辑:vim nginx.conf
expires 2d; (2天自动清除)
压缩功能配置:
cd /usr/local/nginx/conf vim nginx.conf(编辑)
gzip on(开启压缩)
on为开启,gzip_min_lenth 1k;下限,gzip_buffers 4 16k;4个16k的顺序流大小。
gizp_http_version 1.1;版本
gzip_vary on;开启判断我们的客户端是否支持gzip的压缩技术。
自动列目录:
进入 vim /usr/local/nginx/conf/nginx.conf
重新加载配置文件:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- Windows下Nginx的配置及配置文件部分介绍
一.在官网下载 nginx的Windows版本,官网下载:http://nginx.org/download/ 选择你自己想要的版本下载,解压 nginx(例如nginx-1.6.3) 包到你的win ...
- nginx介绍(二) - 默认配置
前言 前面, 在浏览器中, 输入linux 的ip, 出现了以下页面: 那这个页面在哪里呢? 一. 工具 notepad++ 在进入主题之前, 先来介绍下, 一会使用到的工具. 在notepad++里 ...
- nginx基本配置与参数说明以及Nginx中的upstream轮询机制介绍
转自:http://blog.csdn.net/happydream_c/article/details/54943802 一.nginx简介 Nginx (发音为[engine x])专为性能优化而 ...
- Nginx介绍,安装,配置
引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...
- 第十章 nginx常用配置介绍
一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...
- 理解nginx的配置
Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...
- 【转】linux 编译安装nginx,配置自启动脚本
linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...
- 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld
最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯 ...
- 图文解说:Nginx+tomcat配置集群负载均衡
图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用 作者:niumd Blog:http://ari.iteye ...
随机推荐
- select,poll 和 epoll ??
其实所有的 I/O 都是轮询的方法,只不过实现的层面不同罢了. 其中 tornado 使用的就是 epoll 的. selec,poll 和 epoll 区别总结 基本上 select 有 3 个缺点 ...
- hdu 3333 离线线段树 + 思维/树状数组 /在线主席树
#include<iostream> #include<cstdio> #include<string> #include<cmath> #includ ...
- SpringDataJPA使用
一.简介 SpringDataJpa是 JPA规范的一个很好的实现,简化了开发的复杂度,极大提升了开发的效率.SpringDataJpa通过 Repository接口及子接口可以很方便的实现持久化操作 ...
- 用URLGather来管理和保存你的页面
下载链接:http://url-gather.software.informer.com/download/#downloading 安装的过程简单,这里不一一叙述. 安装成功后,找到软件安装的路径, ...
- 手写符合Promise/A+规范的Promise
const PENDING = "pending"; const RESOLVED = "resolved"; const REJECTED = "r ...
- 基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台
基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台 一.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片V ...
- django 项目创建使用
1. web框架的本质: socket服务端 与 浏览器的通信 2. socket服务端功能划分: a. 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunic ...
- Java文件处理之FileReader可输出中文字符
import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public ...
- libopencv_imgcodecs3.so.3.3.1: undefined reference to `TIFFReadDirectory@LIBTIFF_4.0
ubundu 编译 C++工程时遇到的: 解决方案: https://blog.csdn.net/qq_29572513/article/details/88742652
- 定时任务crond
在服务器上使用crond完成定时操作很方便, 下面简单记录一下. 常用的命令主要有以下三个: (1)编辑定时任务 crontab -e (2) 查看定时任务 crontab -l (3) 删除定 ...