作为一名前端开发程序猿,有的时候会遇到一个单体应用的部署,当我们开发完一个应用并上传到远端后,需要给这个目录指定一个单独的域名方便调用。
此时,Nginx 是一个很好的选择。
Nginx 是一款轻量的、由俄罗斯的程序设计师 Igor Sysoev
所开发的高性能的 Web 服务器和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。由于内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
在高连接并发的情况下,Nginx 是 Apache 服务器不错的替代品。
在项目使用中,使用最多的三个核心功能是静态服务器、反向代理和负载均衡。
Nginx 依赖包
Nginx 安装之前需要先安装编译工具、库文件和 PCRE。
安装编译工具和库文件:
-
ssl 功能需要 openssl 库
-
gzip 模块需要 zlib 库
下载地址:http://www.zlib.net/
也可直接使用如下命令:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装 PCRE
- 可以选择下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
也可以使用如下命令:
cd /usr/local/src/
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
- 解压安装包并进入目录:
tar zxvf pcre-8.35.tar.gz
cd pcre-8.35
- 编译安装
./configure
make && make install
- 最后,查看一下版本:
pcre-config --version
安装 PCRE 作用是让 Nginx 支持 Rewrite 功能。
依赖包安装顺序依次为:openssl、zlib、pcre。
现在做好了准备工作之后,开始安装 Nginx。
Nginx 安装
首先,先下载安装包。
下载安装包有两种方式:
通过命令:
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz
解压安装包并进入安装目录
tar zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
编译安装
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
make
make install
安装后查看一下版本,确定是否安装成功
nginx -v
Nginx 配置
首先,建立用户 www:
groupadd www
useradd -g www www
Nginx 服务器的配置信息主要集中在 nginx.conf 这个配置文件中,很多时候,我们需要自己配置 Nginx,其实就是配置 nginx.conf 文件:
#下面是 server 虚拟主机的配置
server
{
listen 80;#监听端口
server_name localhost;#域名
index index.html index.htm index.php;
root /usr/local/webserver/nginx/html;#站点目录
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
{
expires 15d;
# access_log off;
}
access_log off;
}
这种方式其实是把 Nginx 作为 web server 来处理静态资源。
在这里,可以注意以下几点:
第一:location 可以进行正则匹配,要注意正则的几种形式以及优先级。
第二:Nginx 能够提高速度的其中一个特性就是:动静分离,就是把静态资源放到 Nginx 上,由 Nginx 管理,动态请求转发给后端。
第三:我们可以在 Nginx 下把静态资源、日志文件归属到不同域名下(也即是目录),这样方便管理维护。
第四:Nginx 可以进行 IP 访问控制,有些电商平台,就可以在 Nginx 这一层,做一下处理,内置一个黑名单模块,那么就不必等请求通过 Nginx 达到后端在进行拦截,而是直接在 Nginx 这一层就处理掉。
接下来,我们看一下 Nginx 的主要命令
Nginx 命令
- 检查配置文件 nginx.conf 是否正确:
nginx -t
- 使用配置文件
nginx -c "配置文件路径"
- 启动服务
nginx
- 退出服务
nginx -s quit
- 强制关闭服务
nginx -s stop
- 重新载入配置文件
nginx -s reload
- 重启服务
nginx -s reopen
- 使用帮助
nginx -h