day12-nginx

nginx

前台服务器并发大

安装nginx

useradd –s /sbin/nologin nginx

tar xf nginx-xxx.tar.gz

yum install –y gcc pcre-devel openssl-devel

./configure --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

 1 nginx path prefix: "/etc/nginx"
 2 
 3 nginx binary file: "/etc/nginx/sbin/nginx"
 4 
 5 nginx modules path: "/etc/nginx/modules"
 6 
 7 nginx configuration prefix: "/etc/nginx/conf"
 8 
 9 nginx configuration file: "/etc/nginx/conf/nginx.conf"
10 
11 nginx pid file: "/etc/nginx/logs/nginx.pid"
12 
13 nginx error log file: "/var/log/nginx/error.log"
14 
15 nginx http access log file: "/var/log/nginx/access.log"
16 
17 nginx http client request body temporary files: "client_body_temp"
18 
19 nginx http proxy temporary files: "proxy_temp"
20 
21 nginx http fastcgi temporary files: "fastcgi_temp"
22 
23 nginx http uwsgi temporary files: "uwsgi_temp"
24 
25 nginx http scgi temporary files: "scgi_temp"
26 
27 make && make install

 

注意:默认该软件不提供启动脚本

   

nginx配置文件及目录

/etc/nginx        安装目录

/etc/nginx/conf/nginx.conf        主配置文件

/etc/nginx/html        网页目录

/etc/nginx/logs        日志文件

sbin/nginx        启动脚本

   

启动nginx服务

-v    查看nginx

-V    查看编译参数

-t    测试默认配置文件

-c    指定配置文件

 

[root@localhost sbin]# ./nginx -v

nginx version: nginx/1.10.1

[root@localhost sbin]# ./nginx -V

nginx version: nginx/1.10.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

built with OpenSSL 1.0.0-fips 29 Mar 2010

TLS SNI support enabled

configure arguments: --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

[root@localhost sbin]# ./nginx -t

nginx: the configuration file /etc/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/conf/nginx.conf test is successful

 

停止nginx

格式:pkill/kill    信号    进程名/pid号

常用信号

TERM,INT    快速关闭

QUIT    从容关闭,关闭主进程顺便关闭工作子进程

HUP    重载配置用新的配置        相当于服务reload,服务不关闭,重新读取配置文件

kill -HUP `cat /var/run/nginx.pid`

USR1    重新打开日志文件

USR2    平滑升级可执行程序        服务不关闭,升级程序

WINCH    从容关闭工作进程,不会立即关闭子进程

   

可使用kill –l 查看

kill    PID        默认是    15) SIGTERM

kill    -9    为    9) SIGKILL    

ctrl+c    为    2) SIGINT

   

/usr/local/nginx/sbin/nginx        开启服务

/usr/local/nginx/sbin/nginx –s stop    关闭服务

   

升级nginx

[root@localhost sbin]# /etc/nginx/sbin/nginx -V

nginx version: nginx/1.10.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

built with OpenSSL 1.0.0-fips 29 Mar 2010

TLS SNI support enabled

configure arguments: --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

 

tar xf nginx-xxx1.tar.gz

./configure --prefix=/etc/nginx --user=nginx --group=nginx --with-http_ssl_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log

make

cd /etc/nginx/sbin

mv nginx nginxold    备份以前版本的nginx程序

cd nginx/objs    打开新版本的nginx目录下的objs

[root@localhost nginx-1.11.4]# cp objs/nginx /etc/nginx/sbin/nginx    复制新版本的nginx程序

cd ..

make upgrade

[root@localhost ~]# /etc/nginx/sbin/nginx -v

nginx version: nginx/1.11.4

 

主配置选项:

 1 user nginx        进程所有者
 2 
 3 worker_processes 1;    启动进程数量,(推荐:最好等于CPU核心的数量)
 4 
 5 error_log /var/log/nginx/error.log;    日志文件
 6 
 7 pid    /var/run/nignx.pid;    PID文件
 8 
 9 events {    
10 
11     use epoll;
12 
13     worker_connections    1024;        单个进程最大并发量
14 
15 }
16 
17 keepalive_timeout 65    保持连接,超时时间
18 
19 tcp_nodelay    on;    禁用nagle        禁用延迟.无等待(要求并发量高,设置)
20 
21 gzip    on;    开启gzip压缩        提高速度
22 
23 gzip_min_length    1000;    最小压缩文件大小
24 
25 gzip_disable "MISE[1-6]\.(?!.*SV1)";    针对IE禁用gzip
26 
27    
28 
29 server{        定义虚拟主机
30 
31     listen 80;
32 
33     server_name web1.myweb.com;
34 
35     location / {    发布目录    相当于http://192.168.100.100/根下
36 
37         root html;
38 
39         index index.html index.htm index.php;
40 
41         allow 192.168.100.101;        只允许192.168.100.101访问
42 
43         deny all;
44 
45         auth_basic "auth-domain";            //开启账户验证
46 
47         auth_basic_user_file /usr/local/nginx/conf/user.list;        //指定账户及密码的保存文件路径
48 
49 }
50 
51 }

 

   

创建密码文件:

yum install -y

yum whatprovides /usr/bin/htpasswd         查看这条命令来自哪个包

htpasswd –c /etc/nginx/conf/user.list 用户名    第一次创建加-c选项 下次创建用户无需加c

htpasswd /etc/nginx/conf/user.list用户名

可以对密码进行加密

htpasswd –cm /usr/local/nginx/conf/ user.list 用户名

   

 

启动脚本(简单实现功能,以后会改善)

 1 #!/bin/bash
 2 
 3 # chkconfig: - 85 15
 4 
 5 case "$1" in
 6 
 7 start)
 8 
 9 /etc/nginx/sbin/nginx
10 
11 echo "$0:nginx ok..."
12 
13 ;;
14 
15 stop)
16 
17 /etc/nginx/sbin/nginx -s stop
18 
19 #kill -INT `cat /var/run/nginx.pid`
20 
21 echo "$0:nginx stop..."
22 
23 ;;
24 
25 reload)
26 /etc/nginx/sbin/nginx -s reload
27 #kill -HUP `cat /var/run/nginx.pid`
28 
29 echo "$0:nginx reload..."
30 
31 ;;
32 
33 *)
34 
35 echo "$0:start|stop|restart|reload"
36 
37 esac

 

 

虚拟主机

 1 server{
 2 
 3 listen 80;
 4 
 5 server_name www.web1.com;
 6 
 7 location / {
 8 
 9 root web1;
10 
11 index index.html index.htm;
12 
13 }
14 
15 }
16 
17 server{
18 
19 listen 80;
20 
21 server_name www.web2.com;
22 
23 location / {
24 
25 root web2;
26 
27 index index.html;
28 
29 }

 

 

基于SSL的网站

加密算法:对称加密,非对称加密

基于SSL的网站基于非对称加密算法

需要生产:私钥、证书

生产私钥和证书

# openssl genrsa -out cert.key 2048            

生成密钥,gen后面是RSA算法,cret.key是文件名字

# openssl req -new -x509 -key cert.key -out cert.pem    用私钥生成证书

[root@localhost nginx]# ls cert.*

cert.key cert.pem

 

# cp cert.* /etc/nginx/conf  默认放在nginx/conf目录下

 配置文件

 

 1     keepalive_timeout  65;2     gzip  on;3     gzip_min_length 1000;4     gzip_disable "MISE[1-6]\.(?!.*SV1)";5         server{6                 listen 80;7                 server_name www.web1.com;8                 location / {9                         root web1;
10                         index index.html index.htm;
11 #                       auth_basic "auth-domain";
12 #                       auth_basic_user_file /etc/nginx/conf/user.list;
13                 }
14         }
15 
16 #user  nobody;
17 user nginx;
18 worker_processes  1;
19 error_log  /var/log/nginx/error.log;
20 #error_log  logs/error.log  notice;
21 #error_log  logs/error.log  info;
22 pid        /var/run/nginx.pid;
23 events {
24     use epoll;
25     worker_connections  1024;
26 }
27 http {
28     include       mime.types;
29     default_type  application/octet-stream;
30     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
31     #                  '$status $body_bytes_sent "$http_referer" '
32     #                  '"$http_user_agent" "$http_x_forwarded_for"';
33     #access_log  logs/access.log  main;
34     sendfile        on;
35     tcp_nopush     on;
36     #keepalive_timeout  0;
37         server{
38                 listen 80;
39                 server_name www.web2.com;
40                 location / {
41                 root web2;
42                 index index.html;
43                 }
44         }
45 
46 server {
47         listen 443;
48         server_name www.web3.com;
49         ssl  on;
50         ssl_certificate      cert.pem;
51         ssl_certificate_key  cert.key;
52         location / {
53                 root web3;
54                 index index.html;
55         }}
56         server {
57         listen 443;
58         server_name www.web4.com;
59         ssl  on;
60         ssl_certificate      /etc/nginx/ssl/test.pem;
61         ssl_certificate_key  /etc/nginx/ssl/test.key;
62         location / {
63                 root web4;
64                 index index.html;
65         }
66         }
67 }

 

nginx反向代理

优势:调度快,调试机制丰富

缺点:ACL访问控制简单(没有SQUID功能多),缓存机制

主服务配置文件

upstream test {server 192.168.100.101;server 192.168.100.102;
}
server {listen 80;server_name www.test.com;location / {proxy_pass http://test;
        }
}

 

其他两台192.168.100.101和102,开启WEB服务即可

 客户端验证

这是轮询访问

 

nginx目前支持4种分配方式

轮询(默认)逐一手循环调度

weight指定轮询机率,权重值和访问比率正比

ip_hash每个请求根据访问IP分配一个固定t后端服务器

fair按后端服务器响应时间短的优先分配

状态类型

down:表示当前server暂时不参与负载

max_fails:允许请求失败的次数(默认为1)

fail_timeout:max_fails次失败后,暂停提供服务时间

backup:备份服务器

 

当server 192.168.100.101 weight=2;改为

验证

 

 1 upstream test {
 2         ip_hash;    给同一用户分配固定服务器
 3         server 192.168.100.101 weight=2;权重为2
 4         server 192.168.100.102 max_fails=2 fail_timeout=30;如何该地址有三次连接失败,则宕机30秒
 5         server 192.168.100.103 down; 宕机服务器
 6         server 192.168.100.104 backup;备份服务器 (当前面的服务器都宕机才会启用)
 7 }
 8 server {
 9         listen 80;
10         server_name www.test.com;
11         location / {
12                 proxy_pass http://test;
13         }
14 }

 

转载于:https://www.cnblogs.com/fina/p/5886008.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python args_Python可变参数*args和**kwargs用法实例小结

本文实例讲述了Python可变参数*args和**kwargs用法。分享给大家供大家参考,具体如下: 一句话简单概括:当函数的参数不确定的时候就需要用到*args和**kwargs,前者和后者的区别在于,后者引入了”可变”key的概念&#xf…

php调用c++

1.在/var/www中建个测试文件夹 cpp 在此文件夹中新建c文件sort.cpp,如下 编译并测试执行通过进行以下步骤。 2.在cpp文件夹下新建文件cpp.html,如下 3.同样在cpp下建php文件cpp.php,如下 保存。 4.程序执行如下 提交后: 转载于:ht…

AI+无线通信——Top7 (Baseline)分享与总结

从浩哥那里转载 https://wanghao.blog.csdn.net/article/details/115813954 比赛已经告一段落,现在我们队兑现承诺,将比赛方案开源给大家,互勉互助,共同进步。 队伍介绍 我们的队伍名是Baseline,我们因分享Baseline…

tornado post第3方_[33]python-Web-框架-Tornado

1.TornadoTornado:python编写的web服务器兼web应用框架1.1.Tornado的优势轻量级web框架异步非阻塞IO处理方式出色的抗负载能力优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题WSGI全栈替代产品,推荐同时使用其web框架…

android 串口调试工具_树莓派通用串口通信实验

一、介绍对于树莓派 3B来说,他的UART功能有三种:1、内部蓝牙使用;2、控制终端使用;3、与其他设备进行串口通信。在树莓派USB TO TTL模块实验中学习了通过串口对树莓派进行控制台控制,让串口作为控制终端调试口即 seria…

ichat在线客服jQuery插件(可能是历史上最灵活的)

ichat是一款开源免费在线客服jQuery插件,通过该插件,您可以自由的定制属于自己的在线客服代码。 ichat充分吸收传统在线客服插件的优点,并加上自身的独特设计,使得ichat可定制性异常强大。 ichat追求简单实用,走小清新…

第6章 Python 数字图像处理(DIP) - 彩色图像处理1 - RGB彩色模型,RGB to Gray,CMK和CMYK彩色模型,HSI彩色模型

第6章主要讲的是彩色图像处理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型;彩色模型的变换关系;还包含由灰度图像怎样处理成假彩色图像;使用彩色分割图像等。本章比较少理论还有变换的描述&#…

git 命令详解_再次学习Git版本控制工具

微信公众号:PHP在线Git 究竟是怎样的一个系统呢?为什么在SVN作为版本控制工具已经非常流行的时候,还有Git这样一个版本控制工具呢?Git和SVN的区别在哪儿呢?Git优势又在哪呢?下面PHP程序员雷雪松带你一起详细…

spring-boot 定时任务

2019独角兽企业重金招聘Python工程师标准>>> 1、建立项目 SpringBootApplication EnableAsync EnableScheduling EnableAutoConfiguration(exclude{ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class}) ImportResource(…

使用Lightbox制作照片条

前言:这是国外的一个教程,我也很喜欢这个网页里面的教程,主要技术是CSS3和JQuery以及一些JQuery的插件的应用,当然从这些教程我也学到了他们制作时的一些思路,就好像做数学题那样,只要思路把握了&#xff0…

第6章 Python 数字图像处理(DIP) - 彩色图像处理2 - 灰度分层(灰度分割)和彩色编码,灰度值到彩色变换,Gray to RGB

第6章主要讲的是彩色图像处理,一些彩色模型如RGB,CMK,CMYK,HSI等色彩模型;彩色模型的变换关系;还包含由灰度图像怎样处理成假彩色图像;使用彩色分割图像等。本章比较少理论还有变换的描述&#…

值重新赋值_JavaScript-赋值运算符

好好学习,天天向上赋值运算符赋值运算符必须有变量参与运算,赋值运算符会做两件事情第一,将变量中原始值参与对应数学运算,与右侧的数据第二,将运算结果再重新赋值给变量变量位于操作符的左侧赋值运算符符号&#xff1…

超声换能器的原理及设计_超声波发生器、变幅杆、焊头的匹配介绍

一.超声波换能器原理与设计(超声波振动系统)匹配摘要:就塑料焊接机的超声波换能器系统进行设计和计算,并用PRO- E 三维软件绘出三维模型,最后进行频率分析,为超声波换能系统提供了有用的设计方法。关键词:超声波换能器…

位图法

判断集合中存在重复是常见编程任务之一,当集合中数据量比较大时我们通常希望少进行几次扫描,这时双重循环法就不可取了。位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max1的新数组,然后再次扫描原数组…

CentOS查看和修改PATH环境变量的方法

为什么80%的码农都做不了架构师?>>> 查看PATH:echo $PATH 以添加mongodb server为列 修改方法一: export PATH/usr/local/mongodb/bin:$PATH //配置完后可以通过echo $PATH查看配置结果。 生效方法:立即生效 有效期限…

IOS简单的登陆界面

主要需要注意的几个问题: 1.导入图片方式最好用文件导入 代码: 在ViewController.m文件中 2.UILable常用属性 property(nonatomic,copy) NSString *text; //设置文本内容 property(nonatomic,retain) UIFont *font; //设置字体 …

第6章 Python 数字图像处理(DIP) - 彩色图像处理3 -色彩变换、彩色校正、彩色图像平滑和锐化、HSI彩色空间中的分割、RGB空间中的分割、彩色边缘检测

这里写目录标题色彩变换彩色图像平滑和锐化使用彩色分割图像HSI 彩色空间中的分割RGB空间中的分割彩色边缘检测彩色图像中的噪声色彩变换 # 图像颜色分量的显示 from PIL import Imageimg_ori Image.open(DIP_Figures/DIP3E_Original_Images_CH06/Fig0630(01)(strawberries_f…

javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程

学习目标理解面向对象开发思想掌握 JavaScript 面向对象开发相关模式面向对象介绍什么是对象Everything is object (一切皆对象)我们可以从两个层次来理解对象:(1) 对象是单个事物的抽象。一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一…

char数组转string_String类和其它数据类型的相互转换

对于上面的这些包装类,除了Character以外,都有可以直接使用字符串参数的构造函数,这也就使得我们将String类转换为这些数据类型变得相当之简单,即:Boolean(String s)、Integer(String s)、Long(String s)、Float(Strin…

python3循环一直到一个值结束_一步一步学Python3(小学生也适用) 第十七篇:循环语句for in循环...

一、Python for in循环Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等。for in 循环的一般语法如下:for item in 序列:语句块else:语句块for in 字符串&#xff1…