本文基于个人实践所写,如有谬误请指出。
本文在Debian系统下通过编译安装的方式来安装nginx。
Nginx以及反向代理简介
- nginx是一个高性能的HTTP和反向代理web服务器。从安全方面考虑,nginx应该安装在另一个服务器上,而不是同一服务器中既有nginx也有网站资料。
(但是花钱) - 正向代理:比如使用vpn就是一种正向代理。在国内直接连上一台国外的代理服务器,通过代理服务器访问国外网站后将数据发还给国内主机,实现国内主机访问国外网站。对客户端负责,客户端说什么就做什么。
- 反向代理:与正向代理相反,对服务端负责。将服务器的内容通过代理出来给别人看。比如说帮你展示一个网页。别人只能看到反向代理服务器(nginx所在的服务器)的ip等信息,而无法看到真正的服务端信息。
当然,也可以在一个服务器上。
Nginx的安装
Nginx有几种安装方法:
- 使用Nginx源码编译安装。
- 通过docker的Nginx镜像直接使用。
- 使用
apt install nginx
安装。(安装的版本可能会比较旧)
本篇使用的是第一种安装方法使用Nginx源码编译安装。编译安装的优点是可自定义程度高,可以编译自己需要的模块、自选安装的位置。但缺点是装起来比较麻烦。
1. 检查环境
首先检查本机,需要有如下几个依赖包:pcre、zlib、openssl、gcc。不同的系统安装命令不同,如缺少对应的包可能在编译安装过程中出错。
以下是Ubuntu以及Debian的安装命令。
pcre:sudo apt install libpcre3 libpcre3-dev
zlib:sudo apt install zlib1g-dev
openssl:sudo apt install openssl libssl-dev
gcc:sudo apt install gcc
2.下载nginx安装包
-
使用wget下载
wget https://nginx.org/download/nginx-1.24.0.tar.gz
会下载到当前目录。 -
你也可以直接在nginx官网下载Linux版的安装包然后传到服务器上解压。 https://nginx.org/
-
使用tar解压
tar -xf nginx-1.24.0.tar.gz
会解压在当前目录,得到一个nginx-1.24.0
文件夹。
3. 编译配置简介
进入解压后的文件夹:cd nginx-1.24.0
在这个文件夹内才可进行编译。首先使用下面整段的./configure
命令进行编译配置(还未开始编译)。
以下是我自己的编译配置:(可整段复制)
./configure \
--prefix=/root/nginx \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_sub_module \
--with-mail --with-mail_ssl_module \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-pcre \
--with-stream \
--with-http_mp4_module \
--with-http_auth_request_module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-cc-opt=-O3
上述各行参数的简单介绍
-
第二行的
--prefix=/root/nginx
参数决定了nginx安装在/root/nginx
目录内。(绝对路径) -
(可选)于安全起见,你应当使用
useradd nginx
建立一个名为nginx的用户并添加--user=nginx
与--group=nginx
参数,使Nginx程序运行在nginx用户上。可能会在之后的使用中发生权限问题。 -
(可选)你还可以添加
--add-module=/root/ngx_brotli
参数启用 Brotli压缩,需要安装额外的依赖包,详情请百度nginx启用Brotli压缩。老懒狗了
(可选)nginx安装完成后各种类型文件安放位置对应参数:
--modules-path=/usr/lib/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
4. 编译、安装与软链接(快捷方式)
网上的一些教程中会将两个命令合起来:
make && make install
或者make alinstall
就是编译安装一起执行。
-
编译 完成上述编译调参配置后,在当前文件夹
nginx-1.24.0
内输入:make
进行编译。 编译不影响该文件夹内其他文件,可重复编译。 -
安装 等待编译完成且无错误后,继续在当前文件夹
nginx-1.24.0
内输入:make install
进行安装。 -
验证安装 安装完成后,在之前你设置的目录内可以找到对应的nginx文件夹,我这里是
/root/nginx/
。(绝对路径) 接下来进入文件夹cd /root/nginx/sbin
内输入./nginx -V
命令(V大写)。 看到显示 nginx版本号nginx version: nginx/1.24.0
,nginx安装模块与编译配置相同,即证明安装成功。 -
为nginx设置软链接(快捷方式)
cd nginx-1.24.0\sbin
找到可执行文件nginx
,就是我们刚刚执行的 ./nginx 的nginx文件。创建该文件的软链接到 /usr/bin/ 下:ln -s nginx /usr/bin/nginx
之后就可以在任意路径中使用nginx -t
等命令了。
5. 测试以及基本命令
- 测试nginx文件是否配置正确可以启动:
nginx -t
- 显示nginx版本:
nginx -V
- 启动nginx:
nginx
(启动后可以输入curl 127.0.0.1:80
查看本地80端口是否有输出进行验证。) - 停止:
nginx -s quit
- 更改配置后重载nginx配置:
nginx -s reload
当启动nginx后如果防火墙以及服务器端口设置无误,可在浏览器中输入 <你的ip>:80
查看nginx网页。一般来说会显示”Welcome Nginx“,当然如果显示403、404也是正常现象,只要能打开网页即可认为nginx安装无误。