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

安装准备

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

[root@localhost local]# yum -y install gcc-c++  pcre pcre-devel  zlib zlib-devel  openssl openssl-devel

下载

  1. 官网下载安装包

image.png

安装

  1. 解压文件:

    tar -zxvf nginx-1.20.2.tar.gz
  2. 解压之后进入到nginx目录:

    cd nginx-1.20.2
  3. 默认配置模块:

    ./configure

需要添加https配置模块:

./configure --prefix=/usr/local/nginx --with-http_ssl_module
  1. 编译

    make
  2. 安装

    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服务

  1. /usr/lib/systemd/system创建nginx.service文件:

    vim /usr/lib/systemd/system/nginx.service
  2. 添加配置内容:

    [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启动成功:

image.png

配置

修改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

小码code
16 声望11 粉丝