Linux下安装Nginx及配置SSL证书

安装 Nginx

nginx 的一些模块需要依赖一些 lib 库,在安装 nginx 之前,须先安装这些 lib 库,比如常见依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装:

$ yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl--devel

# 下载
$ wget https://nginx.org/download/nginx-1.22.1.tar.gz

# 解压文件到opt目录下
$ tar -xvzf nginx-1.22.1.tar.gz -C /opt

# 在/opt/nginx/目录下执行
# 对nginx添加ssl模块,默认是不添加的
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make

 如果是初次安装需要执行 make install,非初次安装切记不要执行 make install,否则会重新安装nginx。

上述操作执行完成以后,你的目录下会出现 objs 文件夹,文件夹内存在 nginx 文件,如图:

 

 接下来使用新的 nginx 文件替换掉之前安装目录 sbin 下的 nginx,注意这里的替换的时候可以先将之前的文件备份下,停掉nginx服务

#停止nginx服务
$ ./nginx -s stop

#替换之前的nginx
$ cp /opt/nginx/objs/nginx /opt/nginx/sbin

成功之后,进入到 nginx 安装目录下,查看 ssl 是否成功。

#注意这里是大写的V,小写的只显示版本号
$ ./nginx -V

nginx version: 1.22.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module

说明已经开启。

配置 ssl 证书

将下载好的证书(证书一般是crt或pem文件和key文件,这里名字可以随便改)上传到服务器,我将证书放在了 config.d/cert 目录下。

编辑 Nginx 根目录下的 nginx.conf 文件,修改内容如下:

server {
    listen 80;
    server_name you.domain.com;
    #将请求转成https
    rewrite ^(.*)$ https://$host$1 permanent;
}

server {
     #SSL 默认访问端口号为 443
     listen 443 ssl; 
     #请填写绑定证书的域名
     server_name you.domain.com; 
     #请填写证书文件的相对路径或绝对路径
     ssl_certificate you.domain.com.crt; 
     #请填写私钥文件的相对路径或绝对路径
     ssl_certificate_key you.domain.com.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1.2 TLSv1.3; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;

     location / {
         #网站主页路径
         root html; 
         index  index.html index.htm;
     }
 }

配置完成后,检查一下nginx配置文件是否可用,有 successful 表示可用。

# 检查nginx配置文件
$ nginx -t

配置正确后,重新加载配置文件使配置生效:

# 重启
$ ./nginx -s reload

至此,nginx 的 https 访问就完成了,并且通过 rewrite 方式把所有 http 请求也转成了 https 请求,更加安全。

nginx 命令详解

  • -?,-h:查看帮助
  • -v:显示版本信息并退出
  • -V:显示版本和配置选项信息,然后退出
  • -t:检测配置文件是否有语法错误,然后退出
  • -T:检测配置文件语法,打印它并退出
  • -q:在配置测试期间,禁止显示非错误信息
  • -s:发送信号给主进程,stop 强制退出,quit 优雅的退出,reopen 重启,reload 重新加载配置
  • -p:设置 nginx 目录
  • -c:指定启动使用的配置文件(常用)
  • -g:在配置文件之外设置全局指令

常用命令

# 启动
$ ./nginx 

# 此方式相当于先查出 nginx 进程 id 再使用 kill 命令强制杀掉进程
$ ./nginx -s stop

# 此方式是待 nginx 进程处理任务完毕进行停止
$ ./nginx -s quit

# 重启
$ ./nginx -s reload

# 查询nginx进程
$ ps aux|grep nginx

# 检查指定配置文件
$ ./nginx -t -c /opt/nginx/conf.d/you.domain.conf

# 查找并杀死所有 nginx 进程
$ ps aux | grep nginx |awk '{print $2}' | xargs kill -9

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旷野历程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值