写点什么

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

作者:Jeremy Lai
  • 2022-12-01
    广东
  • 本文字数:1580 字

    阅读完需:约 5 分钟

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

安装准备

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


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

下载

  1. 官网下载安装包


安装

  1. 解压文件:


tar -zxvf nginx-1.20.2.tar.gz
复制代码


  1. 解压之后进入到 nginx 目录:


cd nginx-1.20.2
复制代码


  1. 默认配置模块:


./configure
复制代码


需要添加https配置模块:


./configure --prefix=/usr/local/nginx --with-http_ssl_module
复制代码


  1. 编译


make
复制代码


  1. 安装


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
复制代码


  • 添加配置内容:


[Unit]Description=nginxAfter=network.target
[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s quitPrivateTmp=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
复制代码


用户头像

Jeremy Lai

关注

还未添加个人签名 2018-02-12 加入

还未添加个人简介

评论

发布
暂无评论
Centos7安装Nginx教程,一步安装http和https_nginx_Jeremy Lai_InfoQ写作社区