开始 运行环境介绍
名称 | 版本号 |
---|---|
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 下载
名称 | 指引 |
---|---|
echo | Linux下执行下载指令: #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服务器。