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

阅读: 评论:0

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

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 .20.

3.解压

tar -zxvf nginx-1.20.

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)

      原因&#f的nginx.pid被注释了

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

      切记:但凡修改了等配置文件 都必须重启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安装目录下/f配置文件)其余的配置项大家可百度悉知

    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/f
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/f
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/f: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.key 文件
  • 把文件上传到Nginx安装目录下 更改配置文件进行SSL证书配置

15.配置SSL证书

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

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

本文发布于:2024-01-30 02:30:41,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170655304518603.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   Nginx   CentOS   systemd   SSL
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23