Centos7安装Nginx并开启HTTPS

465 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

1. 安装依赖包

由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库。 执行:yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

2. 下载Nginx安装包

可以自行去Nginx官网下载要安装的版本,然后通过第三方工具上传至服务器,也可以用weget命令直接再服务器去下载,我这里使用weget直接下载。

首先执行:yum install wget

再进行下载:wget https://nginx.org/download/nginx-1.20.0.tar.gz  

wget :

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。

执行完wget指令后,就会在当前所在目录看到下载下来的文件。我的目录是/tools/module。

 

3. 解压nginx压缩包

执行:tar -zxvf nginx-1.20.0.tar.gz

4. 配置Nginx编译环境

首先: cd nginx-1.20.0/

然后:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

说明: prefix 指定的目录,就是我们安装Nginx的目录。后面是要配置的相关模块,因为一会要设置https,所以装一下ssl相关模块

5. 编译&安装

make & make install 

6. 校验是否安装成功

首先: cd /usr/local/nginx/sbin/ 然后:./nginx -V 有版本输出,就代表执行成功

image.png

7.启动并进行外部访问

还是在上面的sbin目录下:./nginx 进行启动

如果想进行外部访问,防火墙开启的情况下,还需要进行开放端口:

添加端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

使配置立即生效: firewall-cmd --reload

云服务器相应安全组也要进行配置:

image.png

上面的都完成了以后,我们可以直接访问Nginx的80端口,就是直接访问服务器的地址。

image.png

nginx常用命令:

./nginx                 #启动nginx
./nginx -t              #检查配置文件
./nginx -s stop		#停止nginx
./nginx	-s quit		#安全退出
./nginx -s reload	#重启nginx,修改了文件之后重新加载该程序文件
ps aux|grep nginx	#查看nginx进程

8.升级HTTPS

image.png 可以看到图片中,浏览器显示不安全,就是因为没有设置HTTPS。

使自己的域名从http转变为https,可以提高网站安全性,防止我们的网址被劫持。

  1. 把IP 改为域名,直接进入/usr/local/nginx/conf下编辑vim nginx.conf

image.png

ESC,然后:wq保存退出,可以先-t检查一下,然后reload重启nginx。

  1. 下载证书

    我之前阿里云服务器过期了,现在搞得腾讯云服务器,所以要去腾讯云申请证书,不过其他云服务器基本也是一样的。

1、登录云服务器找到证书菜单 image.png 2、进行申请 image.png 3、提交就申请成功了

image.png 4、去域名那里添加解析记录

image.png 我这边因为域名是在阿里云购买的,所以要去阿里云那边添加解析

5、添加解析,完成进行验证

image.png 6、下载证书

image.png 7、上传证书至服务器

我把证书上传至/usr/local/nginx路径下了,并新建cert文件夹进行存放

image.png

8、配置HTTPS

首先进入cd /usr/local/nginx/conf,进行修改vim nginx.conf

滑到HTTP server 配置那里,把注释放开,修改443端口相关配置,我的配置如下:

 server {
        listen       443 ssl;
        server_name  www.iswho.site;
        
        ssl_certificate      ../cert/iswho.site_bundle.pem;
        ssl_certificate_key  ../cert/iswho.site.key;
        
    #    ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        
        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers  on;
        
        location / {
            root   html;
            index  index.html index.htm;
        }   
    }   

然后80端口那边需要加上一句重定向:rewrite ^(.*) https://$server_name$1 permanent;

image.png

修改完成,保存退出,进行-t检查,然后再reload重启

开启了防火墙的话,还需要先把443端口给开放。

放行443端口: firewall-cmd --zone=public --add-port=443/tcp --permanent 使配置立即生效:firewall-cmd --reload

9.验证HTTPS

再进行去访问 image.png