Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强
Nginx下载资源(Linux版本):nginx-1.9.5.tar.gz
Nginx下载资源(Windows版本):nginx-1.17.6.zip
本文中所介绍的相关安装均是本站提供的版本安装过程,其他版本安装时请注意版本信息修改
下载完成之后,将下载的zip压缩包解压到我们需要安装的位置,这里我解压到 D:\nginx下,解压之后即算完成了安装过程,可以在环境变量中配置相关环境信息,但是Windows下没必要配置这些信息,可以在cmd控制台中直接到该安装目录下进行操作。
启动方式:
方式1:直接点击 nginx.exe ,之后在浏览器中访问 localhost
即可查看是否运行成功
方式2:打开 cmd控制台,这里以我安装路径为例,运行完下面的内容之后,打开浏览器,访问localhost
即可查看是否运行成功
D:
cd nginx
./nginx.exe
运行成功后,会显示如下图所示内容
在windows下Nginx相关命令:
nginx -t #查看配置文件是否有错误
nginx -s reload #重启nginx,重新加载nginx
nginx -s quit #关闭nginx
安装之前,检查并安装Nginx需要的环境,如果系统中原安装有Nginx,则可跳过这一步:
gcc -v #执行完后之后,出现版本信息,则安装过该环境,否则执行下一步
yum -y install gcc #安装gcc环境
yum -y install pcre-devel #安装pcre环境
yum -y install zlib zlib-devel #安装zlib
#如果需要支持ssl,则安装openssl
yum -y install openssl openssl-devel
也可以一个命令安装上述四个环境:
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
进入安装包所在目录,解压安装包(这里以本文提供的资源为例,我将资源放置在 /home中),执行下面的命令:
cd /home
tar -zxvf nginx-1.9.5.tar.gz /home/nginx
cd /home/nginx
解压完成后,可以进入安装程序,这里安装暂时执行正常的安装过程,不考虑需要安全访问的相关模块。依次执行下列相关命令:
./configure #执行后将默认安装在 **/usr/local/nginx**
make
make install
执行完成后,检查是否安装成功:
whereis nginx
执行之后出现下面所示内容即安装成功,否则安装步骤重新安装:
在Linux下Nginx相关命令:
cd /usr/local/nginx/sbin
./nginx #启动Nginx
./nginx -t #查看配置文件是否有错误
./nginx -s reload #重启nginx,重新加载nginx
./nginx -s stop #关闭nginx
这里简单的介绍一下本文中提到的安全访问,这里提到的安全访问指的是 HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)访问,HTTPS在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,具体实现是通过SSL层,本文中提到的安全配置也就是在Nginx下进行SSL的配置。
本文中配置的安全访问是基于阿里云平台的服务器,且操作系统为Cent OS
在Nginx下配置安全访问,需要安全证书,这里以阿里云平台上的服务器做案例,使用的安全证书为免费的证书,证书申请请按照阿里文档进行操作,本文不予赘述。当申请完成后,即可选择下载证书配置的平台,选择Nginx,最终就会得到一个压缩包,解压该压缩包,可以得到下面的文件:
将上述文件上传至服务器中,这里我统一改名为 cert.key 与 cert.pem,上传文件放置于Nginx安装目录下的 conf 下的 cert文件夹中,也可放置在系统别的文件夹下,配置时注意路径即可。上传完成之后,修改Nginx配置文件如下(仅展示安全配置模块的部分配置):
server {
listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
server_name www.example.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。
root html;
index index.html index.htm;
ssl_certificate cert/cert.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/cert.key; #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm;
}
}
修改完配置后,通过下面的命令查看配置是否修改正确:
/usr/local/nginx/sbin/nginx -t
如果配置文件没有问题,将如下图所示:
按照本文的配置,将可能会出现下面的错误信息:
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c
出现上述错误原因是没有安装SSL模块 ngx_http_ssl_module,本文安装过程中已经将需要的依赖环境都安装完成,只需要安装该模块即可,首先备份好我们的配置文件与证书文件:
cp /usr/local/nginx/conf/nginx.conf /home/nginx.conf
cp /usr/local/nginx/conf/cert/cert.pem /home/cert.pem
cp /usr/local/nginx/conf/cert/cert.key /home/cert.key
依次执行下列命令:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install #由于我们已经将文件进行了备份,所以直接进行安装即可
安装完成后,再将我们的配置文件与证书文件移动到原位置:
mkdir /usr/local/nginx/conf/cert
cp /home/nginx.conf /usr/local/nginx/conf/nginx.conf
cp /home/cert.pem /usr/local/nginx/conf/cert/cert.pem
cp /home/cert.key /usr/local/nginx/conf/cert/cert.key
修改完配置后,通过下面的命令查看配置是否修改正确:
/usr/local/nginx/sbin/nginx -t
如果配置文件没有问题,则启动Nginx,查看安全访问是否有效。如果安全访问不到,可能是您的域名信息没有备案,备案完成之后,安全访问即可用。
本博文讲述的是Nginx配置安全访问,按照博文进行操作可以实现相关配置,在配置过程中出现问题可以通过留言询问,博主可以提供快速回答。文章中有不足的地方希望大家批评。文章最后留一个Nginx的初始配置文件,初学者可能会用得到。Nginx初始配置文件 nginx.conf。