Linux安装nginx并配置HTTPS

CentOS7安装nginx有两种方式:编译源码安装、yum安装。

编译源码安装nginx

下载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

yum安装nginx

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,所以可以有两种启动方式

nginx配置HTTPS

配置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/emailAddress=yy@qq.com"

-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/

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值