Nginx配置安全访问

1. Nginx介绍及下载资源

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强

Nginx下载资源(Linux版本):nginx-1.9.5.tar.gz

Nginx下载资源(Windows版本):nginx-1.17.6.zip

2. Nginx安装

本文中所介绍的相关安装均是本站提供的版本安装过程,其他版本安装时请注意版本信息修改

2.1 在Windows下安装

下载完成之后,将下载的zip压缩包解压到我们需要安装的位置,这里我解压到 D:\nginx下,解压之后即算完成了安装过程,可以在环境变量中配置相关环境信息,但是Windows下没必要配置这些信息,可以在cmd控制台中直接到该安装目录下进行操作。

启动方式:

方式1:直接点击 nginx.exe ,之后在浏览器中访问 localhost
即可查看是否运行成功
方式2:打开 cmd控制台,这里以我安装路径为例,运行完下面的内容之后,打开浏览器,访问localhost
即可查看是否运行成功

D:
cd nginx
./nginx.exe

运行成功后,会显示如下图所示内容
欢迎访问nginx
在windows下Nginx相关命令:

nginx -t  #查看配置文件是否有错误
nginx -s reload  #重启nginx,重新加载nginx
nginx -s quit  #关闭nginx

2.2 在Liunx下安装

安装之前,检查并安装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

执行之后出现下面所示内容即安装成功,否则安装步骤重新安装:
Nginx安装路径
在Linux下Nginx相关命令:

cd /usr/local/nginx/sbin
./nginx	#启动Nginx
./nginx -t  #查看配置文件是否有错误
./nginx -s reload  #重启nginx,重新加载nginx
./nginx -s stop  #关闭nginx

3. 安全访问介绍

这里简单的介绍一下本文中提到的安全访问,这里提到的安全访问指的是 HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)访问,HTTPS在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,具体实现是通过SSL层,本文中提到的安全配置也就是在Nginx下进行SSL的配置。

4. 安全访问配置

本文中配置的安全访问是基于阿里云平台的服务器,且操作系统为Cent OS

在Nginx下配置安全访问,需要安全证书,这里以阿里云平台上的服务器做案例,使用的安全证书为免费的证书,证书申请请按照阿里文档进行操作,本文不予赘述。当申请完成后,即可选择下载证书配置的平台,选择Nginx,最终就会得到一个压缩包,解压该压缩包,可以得到下面的文件:
证书文件
将上述文件上传至服务器中,这里我统一改名为 cert.keycert.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,查看安全访问是否有效。如果安全访问不到,可能是您的域名信息没有备案,备案完成之后,安全访问即可用。

5. 写在后面

本博文讲述的是Nginx配置安全访问,按照博文进行操作可以实现相关配置,在配置过程中出现问题可以通过留言询问,博主可以提供快速回答。文章中有不足的地方希望大家批评。文章最后留一个Nginx的初始配置文件,初学者可能会用得到。Nginx初始配置文件 nginx.conf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dp_shiyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值