安装所需环境
Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。
一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
官网下载&&解压
1.直接下载.tar.gz
安装包,地址:https://nginx.org/en/download.html
2.使用wget
命令下载(推荐)。
wget -c https://nginx.org/download/nginx-1.18.0.tar.gz
我下载的是1.14.0版本,这个是目前的稳定版。
3.解压
tar -zxvf nginx-1.18.0.tar.gz
配置
进入解压后的目录内
./configure
当然,你也可以添加额外参数,以此来增加额外的的模块,比如添加gzip_static模块(让服务器支持已存在的缓存模块,优先使用gz文件)
./configure --with-http_gzip_static_module
或者增加多个配置项
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.3/ --prefix=/applications/nginx-1.6.0 --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module
编译安装
make && make install
启动、停止nginx、重启 nginx
启动与停止
cd /usr/local/nginx/sbin/ ./nginx ./nginx -s stop ./nginx -s quit ./nginx -s reload ps aux|grep nginx
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
ps aux | grep nginx:此命令为查询nginx进程
重启
1.先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
./nginx -s quit
./nginx
2.重新加载配置文件:
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload
不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
./nginx -s reload
更改默认端口
默认端口为80,默认端口在这里改
/usr/local/nginx/conf/nginx.conf
访问
服务器根路径
默认情况下,在:
/usr/local/nginx/html
一键安装
如果你觉得上诉步骤太麻烦,我特意写了个一键安装并开启的脚本
执行如下代码即可
wget https://dshvv.oss-cn-beijing.aliyuncs.com/inginx.sh && chmod 755 ./inginx.sh && ./inginx.sh && rm -rf ./inginx.sh
centos没有内置wget工具,如果你不想安装wget,那么可以用自带下载工具curl代替
curl -O https://dshvv.oss-cn-beijing.aliyuncs.com/inginx.sh && chmod 755 ./inginx.sh && ./inginx.sh && rm -rf ./inginx.sh
感兴趣的同学或者如果脚本链接无效,贴出脚本原代码,可以看一下
yum install gcc-c++ -y echo "=======gcc 安装完毕=======" yum install -y pcre pcre-devel -y echo "=======PCRE pcre-devel 安装完毕=======" yum install -y zlib zlib-devel -y echo "=======zlib 安装完毕=======" yum install -y openssl openssl-devel -y echo "=======安装OpenSSL======= " cd /home/ echo "=======进入home目录,开始下载nginx安装包=======" curl -O https://nginx.org/download/nginx-1.18.0.tar.gz echo "=======下载nginx完毕=======" tar -zxvf nginx-1.18.0.tar.gz echo "=======解压nginx完毕,开始安装=======" cd /home/nginx-1.18.0/ ./configure make && make install echo "=======安装完毕=======" echo "=======启动nginx服务=======" cd /usr/local/nginx/sbin/ ./nginx echo "=======启动nginx成功======="
指定项目根路径
nginx中root和alias的区别
关于alias和root的区别:
root和alias是系统文件路径的设置。
root用来设置根目录,而alias用来重置当前文件的目录。
location /img/ { alias /var/www/image/; } #若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件 location /img/ { root /var/www/image; } #若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。