nginx配置
配置nginx的前期准备配置nginx的前期准备
1.1.1 申请安全协议证书
申请下来的ssl证书文件解压后会有两个文件;
一个是.key一个是.pem文件这两个文件是配置https得到关键文件,把两个文件导入到/cert文件夹并记住目录地址以备后续配置使用。
记住这两个目录地址;
1.1.2 检查ssl模块
查看本机nginx是否安装了http_ssl_module模块, 如果没有安装的话要进行重新编译安装。
查看是否安装了此模块的命令为:
重新安装的过程见附录
安装后需要重启nginx服务命令为:/usr/local/nginx/sbin/nginx –s reload
检查配置文件是否正确:/usr/local/nginx/sbin/nginx -t
然后再次验证是否安装ssl成功:nginx –V
1.1.3查看openssl版本
命令openssl version
启用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低于要求,请使用 ssl_protocols TLSv1;
Ps:如果想省略/usr/local/nginx/sbin/nginx这段地址使用nginx则需要添加环境变量
vi /etc/profile
在文件末尾添加环境变量:
PATH=$PATH:/usr/local/nginx/sbin
export PATH
保存后退出然后重新加载配置文件
source etc/profile
配置完后就可以直接使用nginx来命令了
1.2 配置过程
配置命令
启动 /usr/local/nginx/sbin/nginx
停止 /usr/local/nginx/sbin/nginx –s quit
| /usr/local/nginx/sbin/nginx –s stop
校验 /usr/local/nginx/sbin/nginx –t
重新加载配置文件 /usr/local/nginx/sbin/nginx –s reload
1.2.1修改配置文件
找到nginx的配置文件
地址在/usr/local/nginx/conf/ 文件夹中的nginx.conf
对该配置文件进行编辑:vi nginx.conf
修改ssl端口号为我们设定开放的端口号,这里假定我们端口号为9091。
接口请求的uri为:
https://loclhost:9091/xxx/xxx
添加ssl配置
在ssl_certificate和ssl_certificate_key中把之前存放密钥证书的目录地址填上去;
配置完后退出编辑模式
upstream nginxserver1 {
server 172.16.0.167:9090 ;
server 172.16.0.168:9090 ;
}
server {
listen 80;
server_name nginxserver1;
location / {
proxy_pass http://nginxserver1;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#charset koi8-r;
#access_log logs/host.access.log main;
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
server {
listen 9091;
server_name nginxserver1;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://nginxserver1;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
使用 nginx –t
来检查配置文件是否有格式错误;
使用 nginx –s reload
来重新加载配置文件启动;
调用新的https连接来测试是否成功;
配置http自动跳转
不带端口
rewrite ^(.*) https://$host$1 permanent;
带端口
https://localhost:9091$request_uri;
附录.安装ssl模块
如果没有安装openssl依赖会导致nginx的ssl模块无法使用,利用openssl version
命令查看是否安装ssl,使用nginx -V
查看末尾是否有ssl模块没有的话需要重新安装openssl依赖进行重新编译nginx安装。
安装openssl
yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
重新编译nginx(回到nginx初始位置进行重新编译后赋值nginx到/usr/local/nginx/sbin/nginx中。
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
然后make
//不要make install
备份原启动程序cp /usr/local/nginx/sbin/nginx nginx.bak
复制obj新生的启动程序覆盖原启动程序
cp /usr/local/nginx-xxx/objs/nginx /usr/localnginx/sbin/nginx
检测nginx是否有问题nginx -V