Centos7安装Nginx教程,一步安装http和https

2023-02-26 12:53:28 浏览数 (1)

nginx是一款轻量级web服务器,主要有负载均衡和反向代理的特性。

安装准备

nginx一些模块需要依赖lib库,所以先安装lib库,执行以下命令:

代码语言:javascript复制
[root@localhost local]# yum -y install gcc-c    pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

下载

  1. 在官网下载安装包

安装

  1. 解压文件:
代码语言:javascript复制
tar -zxvf nginx-1.20.2.tar.gz
  1. 解压之后进入到nginx目录:
代码语言:javascript复制
cd nginx-1.20.2
  1. 默认配置模块:
代码语言:javascript复制
./configure

需要添加https配置模块:

代码语言:javascript复制
./configure --prefix=/usr/local/nginx --with-http_ssl_module
  1. 编译
代码语言:javascript复制
make
  1. 安装
代码语言:javascript复制
make install [路径,默认安装在usr/local路径下]

启动、关闭

代码语言:javascript复制
# 启动
/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服务

  1. /usr/lib/systemd/system创建nginx.service文件:
代码语言:javascript复制
vim /usr/lib/systemd/system/nginx.service
  • 添加配置内容:
代码语言:javascript复制
[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之后的启动方式
代码语言:javascript复制
# 查询状态
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反向代理:
代码语言:javascript复制
proxy_pass http://wwwtomcat; 
  • 对应添加一个upstream模块,添加转发的路径:
代码语言:javascript复制
upstream wwwtomcat {
   server 127.0.0.1:8080;
}
代码语言:javascript复制
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端口

代码语言:javascript复制
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 / 里面添加反向代理,也是上面的反向代理:
代码语言:javascript复制
proxy_pass http://wwwtomcat; 

测试配置是否正确:

代码语言:javascript复制
/usr/local/nginx/sbin/nginx -t 

http强转https

server模块添加配置

代码语言:javascript复制
rewrite ^(.*)$  https://$host$1 permanent;#将http转成https

0 人点赞