今天接到的需求是,由于是内网环境,我们的服务器没法直接访问互联网,那么,就需要用到nginx了,通过nginx反向代理,可以解决无法访问服务器的问题

一 nginx服务器的安装

1 安装 pcre wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

2 解压文件,

./configure 完成后,回到 pcre 目录下执行 make 继续执行执行 make install

3 执行命令 安装gc++环境,yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

4 解压缩 nginx-xx.tar.gz 包。

进入解压缩目录,执行./configure。

make && make install

进行完以上步骤,就代表nginx安装完成了。

既然已经安装完成了,就需要一些常用的nginx命令来操作nginx服务器

(1)启动命令

在/usr/local/nginx/sbin目录下执行 ./nginx

(2)关闭命令

在/usr/local/nginx/sbin目录下执行 ./nginx -s stop

(3)重新加载命令

在/usr/local/nginx/sbin目录下执行 ./nginx -s reload

以上三条便是操作nginx必备的三条命令

当然,如果我们需要查看日志,在logs目录下也有日志文件access.log

error.logs可以帮助分析问题。

了解完nginx常用命令以及对应的安装步骤之后,接下来就是我们最重要的环节,如何配置nginx

nginx的配置文件在conf目录下一个叫做nginx.conf的文件当中进行配置

首先我们从全局看,nginx的配置文件总体上来说分为三个部分

全局块,events块,http块,我们基本上常用的也就是http块

1 全局块(全局块用来配置全局信息,常用的配置如下)

Nginx 服务器的用户(组)、

允许生成的 worker process 数,

进程 PID 存放路径、

日志存放路径和类型以 及配置文件的引入等。

2 events块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

3 http块 (我们代理配置的位置)

nginx反代设置如何排查错误 nginx反代教程_nginx


如图所示,这是一个标准的http块所包含的元素,我们来一一解答。

http块比较有意思,它主要由两部分组成,一部分是http配置部分,一部分是

server部分。

http配块配置部分 的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

http块server部分

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称 (也可以是IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓 存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

我们的需求是进行代理转发,主要有三个参数

nginx反代设置如何排查错误 nginx反代教程_nginx_02


listen是监听的端口号

server_name是进行匹配的域名 是根据请求头当中的host字段进行匹配的

proxy_pass是我们要进行转发的地址。

以上配置完成以后,我们通过nginx命令就可以启动服务器了。

测试的结果也是成功的转发了请求,这是最简单的一个匹配反向代理的实例,

下一章我会记录如何实现nginx的高可用以及多台服务器的动态配置反向代理。