当前位置:首页 > 服务端 > Nginx配置安全访问

Nginx配置安全访问

2022年11月08日 20:30:03服务端10

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配置安全访问 _ JavaClub全栈架构师技术笔记
在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配置安全访问 _ JavaClub全栈架构师技术笔记
在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,最终就会得到一个压缩包,解压该压缩包,可以得到下面的文件:
Nginx配置安全访问 _ JavaClub全栈架构师技术笔记
将上述文件上传至服务器中,这里我统一改名为 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配置安全访问 _ JavaClub全栈架构师技术笔记
按照本文的配置,将可能会出现下面的错误信息:

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

作者:dp_shiyu
来源链接:https://blog.csdn.net/weixin_43071717/article/details/104207988

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68560.html

标签: Nginx
分享给朋友:

“Nginx配置安全访问” 的相关文章

PHP 针对nginx 的异常 Exception异常和Error错误都需要捕捉

catth (Error $e)    直接上代码 try{ echo asdasdf('111'); //未定义的函数 throw new Exception('asdasd'); }cat...

实战项目-09(oss上传头像以及配置nginx,使用EasyExcel读取excel内容添加数据)

实战项目-09(oss上传头像以及配置nginx,使用EasyExcel读取excel内容添加数据)

oss头像上传的步骤 1. aliyun的配置 注册,实名认证,开启对象存储oss,创建bucket 注意以下的设置: java操作阿里云oss以及上传文件到上面需要准备创建aliyunoss许可证 后端 1.在service创建子...

【2022最新Java面试宝典】—— Nginx面试题(23道含答案)

目录 1. 什么是Nginx? 2. 为什么要用Nginx? 3. 为什么Nginx性能这么高? 4. Nginx怎么处理请求的? 5. 什么是...

Nginx代理Nacos集群部署

Nginx代理Nacos集群部署

Nginx代理Nacos集群部署 一、环境 操作系统:Centos7及以上或Mac Nginx版本:1.21.6 Nacos版本:2.0.4 Nginx网址、Nginx中文文档 Nacos网址 二、Nacos集群部署...

VUE部署nginx解决跨域问题

VUE部署nginx解决跨域问题

VUE部署nginx解决跨域问题 Vue的代理跨域问题,需要确定的是在开发阶段可以使用,部署到服务器后出现请求失败的问题(404),如下图。 VUE配置的代理...

windows版本免安装redis, nginx, zookeeper

redis官网:https://redis.io/ windows版本免安装redis下载链接:https://github.com/MSOpenTech/redis/releases   nginx官网:http://nginx.org/ windo...

安装nginx和nginx-gridfs和mongodb

1.安装依赖包: [root@mongo_rs1 ~]# yum -y install pcre-devel openssl-devel zlib-devel git gcc gcc-c++ [root@mongo_rs1 zhuyr]# gi...

nginx 拦截 swagger 登录

随着微服务的也来越多,每个服务都有单独的文档,那么问题来了,怎么把所有文档整合在一起呢 本方法采用服务器拦截的方式进行处理 首先需要在opt 的主目录中 /opt/ 创建一个新文件 htpasswd此文件的书写格式是用户名:密码每行一个账户并且 密码必须使用函数 crypt...

nginx & flup & django & python3.x @ window7配置备忘录

         最近考虑原Prism建筑(非职业、半专业人士认为C/S建筑)至B/S迁移,主要是由于部署问题,包括两个因素:已经做,虽然一键安装和部署的一个因素,心存顾虑,虽然我一再声明这是一个绿色软件。还有一个因素是在有的...

nginx代理rabbitmq

一、安装nginx 二、添加模块 ./configure --with-stream --with-stream_ssl_module 三、make 编译 四、 make install 安装 五、nginx -V 检测模块是否安装上 六、nginx...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。