CentOS安装配置Nginx、安装SSL模块、并配置systemd

CentOS安装配置Nginx、安装SSL模块、并配置systemd

1.安装所需环境

#一次安装4个插件
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
#一次安装如果有问题,可以试一下分开安装
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2.下载Nginx

使用wget命令下载远程文件 如果没有安装wget 先执行 yum install wget 安装wget

wget -c https://nginx.org/download/nginx-1.20.2.tar.gz

3.解压

tar -zxvf nginx-1.20.2.tar.gz

4.进入解压后的源码包

cd nginx-1.20.2

5.配置

  • 如果不安装任何第三方模块 直接默认配置**[方便后面演示安装SSL模块 我这里直接使用默认配置 不安装任何第三方模块]**
./configure
  • 如果需要配置安装第三方模块 则在命令后加上模块名 比如安装ssl模块 当然模块可以在安装后再继续添加
# 这里推荐大家不执行 下文我将带大家进行后期的安装
./configure --with-http_ssl_module

6.编译

make
  • 此时我们可以查看预安装的模块 输出结果 configure arguments: 后带的就是我们将安装的模块 如果前面是默认安装 则configure arguments: 后不携带任何模块
objs/nginx -V

7.编译安装

make install
  • 安装完成后可查看安装路径 我这里是/usr/local/nginx
whereis nginx

8.启动 停止 重启Nginx

  • 这时候我们cd到刚刚的安装路径下的/sbin/文件夹
cd /usr/local/nginx/sbin/
  • 执行对应目录即可操作Nginx

    • 如果执行时提示错误:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

      原因:nginx.conf的nginx.pid被注释了

      解决:进入/usr/local/nginx/conf/找到nginx.conf文件找到pid logs/nginx.pid解除注释

      切记:但凡修改了nginx.conf等配置文件 都必须重启Nginx才能生效

# 启动Nginx
./nginx 
# 停止Nginx
./nginx -s stop
# 重启Nginx
./nginx -s reload

9.开放端口

  • 开启防火墙80、443端口 也就是http与https

    sudo firewall-cmd --reload命令的意思是立即生效

  • 如果服务器在 阿里云、腾讯云 等云平台则需要到安全组开放端口

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

10.大功告成

  • 访问服务器IP地址的80端口(默认80端口) 如果正常显示Welcome to Nginx!页面则表示Nginx配置成功

  • 配置自己的项目页面(修改Nginx安装目录下/conf/nginx.conf配置文件)其余的配置项大家可百度悉知

    server {
            listen       80;				# 端口
            server_name  localhost;
            location / {
                root   /usr/web/ming_home;	  # 页面目录(如果前端页面不在/usr/下可能导致权限不足无法访问)
                index  index.html index.htm;  # 索引文件
            }
        }
    

11.配置systemd

  • 现在我们启动Nginx还得cd到安装目录并手动执行Nginx 并且现在还不能开机自启动

12.创建服务文件

  • 进入系统服务目录
cd /etc/systemd/system
  • 编辑 Nginx.service启动配置
vim nginx.service
  • 在配置文件中写入如下配置 我这里Nginx的安装目录是/usr/local/nginx如果你的不是则在写如下配置时要记得更改
[Unit]
Description=nginx-The High-performance HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
  • 到这里systemd就已经配置完成 可以使用如下命令操作Nginx

  • 查看 Nginx 状态

    systemctl status nginx

  • 重启 Nginx

    systemctl restart nginx

  • 启动 Nginx

    systemctl start nginx

  • 停止 Nginx

    systemctl stop nginx

  • 启用开机启动 Nginx

    systemctl enable nginx

  • 禁用开机启动 Nginx

    systemctl disable nginx

13.安装SSL模块

  • 如果我们没有安装SSL模块 在配置Https时 会提示错误:

    nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

  • 我们先切换到源码包目录(也就是刚刚wget下载并解压的目录,如果你删除了改目录 可以重新下载一个对应版本)

    我的源码目录是/usr/app/nginx-1.20.2/

    cd /usr/app/nginx-1.20.2
    
  • 查看Nginx当前已安装的模块

    /usr/local/nginx/sbin/nginx -V
    
  • configure arguments:后输出的就是现有已安装的模块 我们要将后面输出的内容复制下来 和SSL模块一并安装 否则就丢失了

    因为我这里没有安装任何模块 所以configure arguments:后面输出就是空的

    因此我们只需要加上自己想要的SSL 模块名称--with-http_ssl_module 然后回车执行

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module
    
  • 执行完上面的命令后我们接着执行编译命令

    注意:这里切记千万不要执行make install 否则就把原来安装的Nginx所有文件都覆盖掉了

    make
    
  • 关闭Nginx

    systemctl stop nginx
    
  • 然后用源码包中刚刚编译好的的Nginx把安装目录中的Nginx替换掉

    cp ./objs/nginx /usr/local/nginx/sbin/
    
    • 输出确认覆盖提示后输入y回车即可
  • 然后查看安装目录下的Nginx是否已安装我们需要的模块

    /usr/local/nginx/sbin/nginx -V
    

14.安装SSL证书

  • 腾讯云、阿里云等平台可以申请免费的SSL证书
  • 申请通过后,在申请的平台下载Nginx版SSL证书
  • 下载SSL证书并解压后 我们复制以下两个文件
    xxxxx.crtxxxxx.key 文件
  • 把文件上传到Nginx安装目录下 更改nginx.conf配置文件进行SSL证书配置

15.配置SSL证书

  • 配置344(Https)端口
  • 配置SSL证书路径ssl_certificatessl_certificate配置项
server {
            listen 344;
            server_name localhost;
            
            ssl_certificate /usr/local/nginx/ xxxxx.crt;
            ssl_certificate_key /usr/local/nginx/ xxxxx.Key;
            
            location / {
           		 root   /usr/web/ming_home;
           		 index  index.html index.htm;
        	}
        }

15.配置Http和Https共存

server {
            listen 80 default backlog=2048;
            listen 443 ssl;
            server_name localhost;
            root   /usr/web/ming_home;
            
            ssl_certificate /usr/local/nginx/ xxxxx.crt;
            ssl_certificate_key /usr/local/nginx/ xxxxx.Key;
            
            location / {
           		 root   /usr/web/ming_home;
           		 index  index.html index.htm;
        	}
        }

好啦 本次小教程到这里就结束啦 第一次发帖 可能有很多不足的地方欢迎指出

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值