开始 运行环境介绍
名称版本号
Nginx源码安装V1.16.0
Linux版本CentOS Linux release 7.3.1611 (Core)
执行该指令查询版本号:cat /etc/redhat-release
服务器配置1核2G
web运行环境Tomcat7 + JDK8
Step1 下载Nginx、echo日志模块

1.1 什么是echo(命令)?
它通常在shell脚本和批处理中使用,以将状态信息输出到屏幕或文件中。这里使用echo向屏幕输出字符,方便查看经Nginx处理的请求信息。

1.2 下载

名称指引
echoLinux下执行下载指令:
#wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
nginx目前最新稳定版v1.16.0
官网下载:
https://nginx.org/en/download.html
Step2 解压安装

2.1 Nginx文件包上传、解压、安装

文件上传略;
文件解压指令:
[root@slave1]# tar -zxvf /home/myprogram/nginx-1.16.0.tar.gz
[root@slave1]# tar -zxvf /home/myprogram/echo-nginx-module-0.6

注意:
先解压Nginx压缩包,后解压echo压缩包
echo存放路径:/home/myprogram/echo-nginx-module-0.6
Nginx存放路径:/home/myprogram/nginx-1.16.0.tar.gz

2.2 进入Nginx解压目录执行Nginx配置指令

[root@slave1]# cd /home/myprogram/nginx-1.16.0
[root@slave1]#./configure --prefix=/usr/local/nginx --add-module=/home/myprogram/echo-nginx-module-0.61 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre

参数名称含义
–prefix定义将保留服务器文件的目录
–add-module启用外部模块
(本文启用echo模块向屏幕输出字符)
–with-http_ssl_module允许构建一个模块,将HTTPS协议支持添加 到HTTP服务器。默认情况下不构建此模块。需要OpenSSL库来构建和运行此模块
–with-http_v2_module可以构建一个支持HTTP/2.0的模块 。默认情况下不构建此模块。
–with-http_stub_status_module可以构建ngx_http_stub_status_module 模块,该 模块提供对基本状态信息的访问。默认情况下不构建此模块
–with-pcre强制使用PCRE库,这是正则表达式库

2.3 在Nginx根目录下执行编译、安装

执行编译、安装组合指令
[root@slave1]# make && make install

安装成功一览表,其中黄字是我们需要特别关注的:
①保存Nginx服务器文件 :/usr/local/nginx/sbin/nginx
②Nginx配置文件:/usr/local/nginx/conf/nginx.conf
③http请求报错日志:/usr/local/nginx/logs/error.log
④http请求日志:/usr/local/nginx/logs/access.log
在这里插入图片描述

Step3 Nginx常用命令

要启动nginx,请运行可执行文件。启动nginx后,可以通过使用-s参数调用可执行文件来控制它。使用以下语法:
[root@slave1]# /usr/local/nginx/sbin/nginx -s 指令

指令含义
stop快速停机
quit优雅停机,即等待当前进程完成请求服务时停机
(原文:graceful shutdown)
reload重新加载配置文件
reopen重新打开日志文件

例如:修改Nginx配置文件后重新加载
[root@slave1]# /usr/local/nginx/sbin/nginx -s reload

Step4 Nginx反向代理配置

4.1 什么是正向代理?
    正向代理在我们生活中被称为VPN,它是"客户端"与"源服务器"之间的数据中转服务。国内的客户端访问国外服务器因为IP不通的缘故,无法像浏览百度一样自由获取百度服务器的数据,因此需要"VPN服务器"协助,由它请求源服务器获取数据再将数据从"VPN服务器"发回客户端。
    特点:客户端携带目标服务器的请求信息发送给VPN服务器处理,源服务器对客户端可见。

4.2 什么是反向代理?
    "反向代理服务器"根据客户端的请求,从"反向代理服务器"关联的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。
    特点:提高了内部服务器的安全;加快了对内部服务器的访问速度(可对静态页面、数据进行缓存);节约了有限的IP资源;

4.3Nginx反向代理如何配置?
    配置文件位于Nginx根目录下,如/home/myprogram/nginx-1.16.0/conf/nginx.conf;
    配置内容节选:

server {
	 # Ngixn代理80端口,代理的服务器ip是120.78.99.88
	 listen       80;
	 server_name  120.78.99.88;
	 
	 # add_header配置项表示向屏幕输出字符,而非“下载文件”
   location / {
      add_header Content-Type text/palin;
      echo "匹配根目录规则";
   }

   # ~* 表示 不区分大小写拦截包含“/mail”字符的URI请求,并转发到代理的地址
   location ~* /mail {
      proxy_pass https://mail.qq.com/;
   }

   # ~* 表示 不区分大小写拦截包含“/index”字符的URI请求,root配置项则是工程的物理路径;try_files配置项表示依次请求资源,直到请求成功为止,否则返回404
   location ~* /index {
      root /home/apache-tomcat-7.0.81/webapps;
      try_files $uri $uri/ /Example/index.html;
   }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       root   html;
   }
}

4.4 location匹配规则

符号含义
=普通字符精确匹配
^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
~波浪线表示执行一个正则匹配,区分大小写
~*示执行一个正则匹配,不区分大小写
完结

    Nginx除了可以做反向代理之外,还支持Http缓存、负载均衡。少年,请按照各自的项目需求选择开启Nginx的功能吧~~~Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行连接,其内存占用却很少。估计我们以后都会使用Nginx当作Http服务器。

Logo

更多推荐