CentOS7安装nginx有两种方式:编译源码安装、yum安装。
下载nginx源码包 http://nginx.org/en/download.html
也可以使用wget命令直接下载
wget http://nginx.org/download/nginx-1.19.6.tar.gz
将源码解压到 /usr/local/src 目录
tar -zxvf nginx-1.19.6.tar.gz -C /usr/local/src/
安装依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
进入nginx源码目录
cd /usr/local/src/nginx-1.19.6/
指定程序的安装目录为/usr/local/nginx
./configure --prefix=/usr/local/nginx
编译安装
make
make install
nginx命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 指定配置文件启动
/usr/local/nginx/sbin/nginx # 启动,默认配置文件也是/usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx
停止nginx,使用yum安装nginx
/usr/local/nginx/sbin/nginx -s stop
nginx不在官方默认的yum源中,需要安装EPEL。EPEL的全称叫 Extra Packages for Enterprise Linux ,由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目,装上了EPEL之后,就相当于添加了一个第三方源。
需要安装EPEL
yum install -y epel-release
安装nginx
yum install -y nginx
启动nginx。也可以执行 nginx 这一个命令启动
systemctl start nginx
执行 rpm -ql nginx 查看nginx的配置文件,nginx即配置了systemd,也配置了/usr/sbin/nginx,所以可以有两种启动方式
配置https需要私钥和证书,使用openssl生成私钥和自签证书。
安装openssl
yum -y install openssl openssl-devel
新建目录存储私钥和证书
mkdir /etc/nginx/pki
进入目录
cd /etc/nginx/pki
使用一条命名便可以生成私钥和自签证书
openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=当前服务器的IP/[email protected]"
-newkey 自动生成密钥,rsa:2048 使用2048位RSA非对称加密算法,-nodes 不加密密钥,-keyout rsa_private.key 生成私钥rsa_private.key。不要生成公钥,签发的证书中包含了公钥。
-x509 证书类型是自签证书,-days 365 证书有效期是365天,-out cert.crt 生成cert.crt文件,cert.crt是自签证书。
-subj 生成证书的信息,包括国家(只能填写两个字符)、省/洲、市、公司、部门、个人信息(填写服务器IP即可)、邮箱。
openssl签发证书的过程是比较复杂的,参数也很多,本文就不详述了。
查看私钥和证书
ll
修改nginx配置。配置文件已经写好了https的配置,但是注释掉了,把注释取消,并修改ssl_certificate、ssl_certificate_key即可
vim /etc/nginx/nginx.conf
ssl_certificate "/etc/nginx/pki/cert.crt";
ssl_certificate_key "/etc/nginx/pki/rsa_private.key";
重启nginx,也可以使用 systemctl restart nginx
systemctl stop nginx
systemctl start nginx
使用https访问nginx
https://192.168.XXX.XXX/
nginx强制走https,将80端口的请求重定向到443端口
vim /etc/nginx/nginx.conf
# 注释掉80端口转发规则
# location / {
# }
# 80端口重定向到443
return 301 https://$host$request_uri;
重启nginx
systemctl restart nginx
使用http访问nginx,会自动跳转到https
http://192.168.3.179/