共计 2345 个字符,预计需要花费 6 分钟才能阅读完成。
nginx 是一款轻量级 web 服务器,次要有负载平衡和反向代理的个性。
装置筹备
nginx
一些模块须要依赖 lib
库,所以先装置 lib
库,执行以下命令:
[root@localhost local]# yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载
- 在官网下载安装包
装置
-
解压文件:
tar -zxvf nginx-1.20.2.tar.gz
-
解压之后进入到 nginx 目录:
cd nginx-1.20.2
-
默认配置模块:
./configure
须要增加 https
配置模块:
./configure --prefix=/usr/local/nginx --with-http_ssl_module
-
编译
make
-
装置
make install [门路,默认装置在 usr/local 门路下]
启动、敞开
# 启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重启
/usr/local/nginx/sbin/nginx -s reload
# 敞开
/usr/local/nginx/sbin/nginx -s stop
每次启动或者重启服务都须要输出一大串门路,为了简化操作,配置一下
systemctl
服务。
配置 systemctl
服务
-
在
/usr/lib/systemd/system
创立nginx.service
文件:vim /usr/lib/systemd/system/nginx.service
-
增加配置内容:
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install]
-
配置 systemctl 之后的启动形式
# 查问状态 systemctl status nginx # 启动 systemctl start nginx # 重启 systemctl restart nginx # 敞开 systemctl stop nginx # 设置开机启动 systemctl enable nginx
- 启动
nginx
,拜访http://127.0.0.1
, 呈现如下页面阐明nginx
启动胜利:
配置
批改 conf/nginx.conf
配置文件。
找到 server
模块下的 80
端口。
- 批改
server_name
前面的域名,我这里改成www.jeremy7.cn
。 -
在
location /
下增加proxy_pass
反向代理:proxy_pass http://wwwtomcat;
-
对应增加一个
upstream
模块, 增加转发的门路:upstream wwwtomcat {server 127.0.0.1:8080;}
server {
listen 80;
server_name www.jeremy7.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://wwwtomcat;
root html;
index index.html index.htm;
}
}
配置 https
开启 443 端口
server {
listen 443 ssl;
#配置 HTTPS 的默认拜访端口为 443。#如果未在此处配置 HTTPS 的默认拜访端口,可能会造成 Nginx 无奈启动。#如果您应用 Nginx 1.15.0 及以上版本,请应用 listen 443 ssl 代替 listen 443 和 ssl on。server_name yourdomain.com; #须要将 yourdomain.com 替换成证书绑定的域名。root html;
index index.html index.htm;
ssl_certificate cert/cert-file-name.pem; #须要将 cert-file-name.pem 替换成已上传的证书文件的名称。ssl_certificate_key cert/cert-file-name.key; #须要将 cert-file-name.key 替换成已上传的证书密钥文件的名称。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; #示意应用的 TLS 协定的类型。ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。index index.html index.htm;
}
}
server_name
改成本人的申请的域名ssl_certificate
替换成.pem
后缀的证书文件ssl_certificate_key
替换成.key
后缀的证书文件-
location /
外面增加反向代理, 也是下面的反向代理:proxy_pass http://wwwtomcat;
测试配置是否正确:
/usr/local/nginx/sbin/nginx -t
http 强转 https
server
模块增加配置
rewrite ^(.*)$ https://$host$1 permanent;# 将 http 转成 https
正文完