nginx配置https
2019-03-20 本文已影响0人
trustjs
我的服务器使用的系统是CentOS 6,因此直接使用yum安装nginx,其它系统以及版本可能有所差异。
使用yum安装nginx
step1, 先要安装nginx的yum源
设置源
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
执行完上面的命令后,我们使用命令yum info nginx
查看一下Nginx 软件包信息.
[root@host nginx]# yum info nginx
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: repos.lax.quadranet.com
* elrepo-kernel: repos.lax-noc.com
* extras: mirror.fileplanet.com
* updates: mirror.scalabledns.com
已安装的软件包
Name : nginx
Arch : i686
Version : 1.14.2
Release : 1.el6.ngx
Size : 2.5 M
Repo : installed
From repo : nginx
Summary : High performance web server
URL : http://nginx.org/
License : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.
可安装的软件包
Name : nginx
Arch : i386
Version : 1.12.2
Release : 1.el6.ngx
Size : 967 k
Repo : nginx
Summary : High performance web server
URL : http://nginx.org/
License : 2-clause BSD-like license
Description : nginx [engine x] is an HTTP and reverse proxy server, as well as
: a mail proxy server.
安装
step2, 安装nginx, 使用命令yum install nginx
安装,等待安装完成。
yum install nginx
检查nginx 版本nginx -v
[root@host nginx]# nginx -v
nginx version: nginx/1.14.2
这个时候我们发现nginx已经安装成功了。
查看nginx配置
使用yum安装的nginx, 默认配置文件放在/etc/nginx/nginx.conf
,使用命令nginx -t
可以拿到配置文件的存放路径;这个命令用于测试配置文件语法是否准确无误。
[root@host nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
使用vim查看配置内容如下:
.......
.......
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
看最后一行include /etc/nginx/conf.d/*.conf;
便知nginx include 了./conf.d/
下面的所有配置文件,因此我们也可以将配置文件放在./conf.d/
目录下。
配置https站点
在配置Https 之前,我们需要准备好购买的SSL证书文件,我使用的是阿里云提供的免费证书。
1、将证书文件传到服务器,我使用的是scp
命令将证书拷贝到服务器的/etc/nginx/ssl_certs/
目录下面。现在该目录下有两个文件,xxx.pem
和 xxx.key
。
2、在创建配置文件/etc/nginx/conf.d/
目录下创建 xxx.conf
文件
touch /etc/nginx/conf.d/draw.lyan.me.conf
将如下配置copy到配置文件中
server {
listen 443 ssl;
server_name draw.lyan.me;
ssl_certificate /etc/nginx/ssl_certs/draw.lyan.me.pem;
ssl_certificate_key /etc/nginx/ssl_certs/draw.lyan.me.key;
#ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name draw.lyan.me; # 你的域名
# 强制跳转https
rewrite ^(.*) https://$server_name$1 permanent;
}
最后重启 nginx, 使用 service nginx restart
命令重启。
[root@host conf.d]# service nginx restart
Stopping nginx: [ OK ]
Starting nginx: [ OK ]
访问 https://draw.lyan.me ,(PS: 我的服务器配置了dns解析),即可发现https已经生效