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
 

Nginx 介绍配置的更多相关文章

  1. Windows下Nginx的配置及配置文件部分介绍

    一.在官网下载 nginx的Windows版本,官网下载:http://nginx.org/download/ 选择你自己想要的版本下载,解压 nginx(例如nginx-1.6.3) 包到你的win ...

  2. nginx介绍(二) - 默认配置

    前言 前面, 在浏览器中, 输入linux 的ip, 出现了以下页面: 那这个页面在哪里呢? 一. 工具 notepad++ 在进入主题之前, 先来介绍下, 一会使用到的工具. 在notepad++里 ...

  3. nginx基本配置与参数说明以及Nginx中的upstream轮询机制介绍

    转自:http://blog.csdn.net/happydream_c/article/details/54943802 一.nginx简介 Nginx (发音为[engine x])专为性能优化而 ...

  4. Nginx介绍,安装,配置

    引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...

  5. 第十章 nginx常用配置介绍

    一.虚拟主机 1.配置方式 #虚拟主机配置方式:1.基于多IP的方式2.基于多端口的方式3.基于多域名的方式 2.方式一:基于多IP的方式 1.第一个配置文件[root@web02 /etc/ngin ...

  6. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

  7. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  8. 《深入理解Nginx》阅读与实践(一):Nginx安装配置与HelloWorld

    最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码的能力,二是想学学Nginx优秀的架构设计,三是想找一个点深入下Linux下网络编程的细节.侯 ...

  9. 图文解说:Nginx+tomcat配置集群负载均衡

    图文解说:Nginx+tomcat配置集群负载均衡 博客分类: appserver nginxTomcatUbuntuLinux网络应用  作者:niumd Blog:http://ari.iteye ...

随机推荐

  1. 前端写代码自动刷新神器Browsersync

    Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面. 更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试 ...

  2. JavaScript基础5——动态显示时间

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 同步请求与异步请求Json

    同步请求的返回值类型 : void : 啥也不返回 String :表示逻辑视图名 ModelAndView:该对象既有逻辑视图名,还可以携带去页面要展示的数据 同步请求:如何将controller层 ...

  4. Windows下的Linux子系统安装,WSL 2下配置docker

    Windows下的Linux子系统安装,WSL 2下配置docker 前提条件: 安装WSL 2需要Windows 10版本是Build 18917或更高,首先先确认系统版本已升级. 在“启用或关闭W ...

  5. robotframework关键字

    *** Settings ***Library Selenium2Library *** Keywords ***Checkbox应该不被选择 [Arguments] ${locator} Check ...

  6. man uname

    UNAME(1)         User Commands/用户命令        UNAME(1) NAME/名称       uname - print system information/打 ...

  7. 021:自定义path(或url)转换器

    1.实现如下需求:用户可以根据articles/list/方式获取文章,其中文章分类是采用如下分类,实例如下: 第一种:获取python分类下的文章:/article/python/ 第二种:获取py ...

  8. iOS----实现scrollView或者scrollView的子类下拉图片放大的效果

    代码是通过Tableview来说明的,用在其他情况下同样适用 - (void)viewDidLoad { [super viewDidLoad]; _imageview = [[UIImageView ...

  9. php strripos()函数 语法

    php strripos()函数 语法 作用:寻找某字符串中某字符最后出现的位置,不区分大小写.大理石平台 语法:strripos(string,find,start) 参数: 参数 描述 strin ...

  10. php中魔术方法有什么用

    在面向对象编程中,PHP提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利.PHP中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发. __construct ...