yum安装nginx、源码安装、nginx开机自启、配置多域名与重定向、反向代理、配置IPv6、获取证书与配置证书https

1、Linux安装nginx

1.1、yum安装

可以使用yum直接安装nginx:yum -y install nginx,如果安装报错,可以换个yum源试试
源码安装提供更大的灵活性,但需要更多的手动管理,而Yum安装则更方便
yum源镜像站,阿里云的推荐:https://developer.aliyun.com/mirror/
常用的镜像:epel和centos,根据提示命令直接安装即可
然后执行:yum clean all、和yum makecache

1.2、源码安装

我的系统版本:centos7.9

安装的nginx版本:nginx-1.25.3

image-20231127225256415

1、下载安装包后上传到主机,或直接wget下载:wget http://nginx.org/en/download.html/nginx-1.25.3

2、进行解压:tar zxf nginx-1.25.3.tar.gz,然后进入nginx目录:cd nginx-1.25.3

3、安装依赖:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

4、配置configure --prefix 代表安装的路径,–with-http_ssl_module 安装ssl,–with-http_stub_status_module:

./configure --prefix=/usr/local/nginx-1.25.3 --with-http_ssl_module --with-http_stub_status_module

5、编译安装:make & make install

6、进入安装的目录,并启动nginx:cd /usr/local/nginx-1.25.3/sbin,启动:./nginx

7、配置变量:cp /usr/local/nginx-1.25.3/sbin/nginx /usr/bin/

系统变量如下:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

image-20231127230245215

8、这时候就可以直接访问试试是否正常了

image-20231127225917245

1.3、配置nginx开机自启

配置开机自启程序:建议在/etc/systemd/system/目录下配置对应文件

1、vi /etc/systemd/system/nginx.service

2、编辑参数

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStartPre=/usr/local/nginx-1.25.3/sbin/nginx -t -c /usr/local/nginx-1.25.3/conf/nginx.conf
ExecStart=/usr/local/nginx-1.25.3/sbin/nginx -c /usr/local/nginx-1.25.3/conf/nginx.conf
ExecReload=/usr/local/nginx-1.25.3/sbin/nginx -s reload
ExecStop=/usr/local/nginx-1.25.3/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
含义
[Unit] 部分:
Description(描述): 服务的可读性描述。
After(在之后启动): 定义在启动此单元之后应该启动的其他单元。
[Service] 部分:
Type(类型): 指定服务的类型。forking 类型是指当服务启动时,主进程会派生(fork)出一个或多个子进程。
ExecStartPre(启动前的命令): 在实际启动 Nginx 之前执行的命令,用于检查配置文件是否正确。在这里,
-t 参数表示测试配置文件的语法。
ExecStart(启动命令): 实际启动 Nginx 的命令。-c 参数用于指定配置文件的路径。
ExecReload(重载命令): 用于重新加载 Nginx 配置的命令。这里使用 -s reload 参数。
ExecStop(停止命令): 停止 Nginx 的命令。这里使用 -s stop 参数。
PrivateTmp(私有临时目录): 将服务的临时目录设为私有的,以增加安全性。
[Install] 部分:
WantedBy(被期望在哪个目标中启用): 指定服务应该在哪个系统目标中启动。multi-user.target 表示在多用户模式下启用。
如果你想替换 Nginx 的路径,将所有 /usr/local/nginx-1.25.3 替换为你实际的安装路径即可。
确保路径和文件名与你的实际安装一致

3、systemctl daemon-reload

4、sudo systemctl enable nginx

5、sudo systemctl start nginx

6、sudo systemctl status nginx,查看状态是否正常

注:这时候你执行第5步的时候会报错,因为之前已经启动nginx了,会提示端口占用,解决方法,kill掉占用的pid,或直接重启即可

1.4、配置域名和重定向

1、编辑配置文件:vi /usr/local/nginx-1.25.3/conf/nginx.conf

找到代码块:
    server {
        listen       80;
        server_name  这里写域名;
        return 301 https://blog.youkuaiyun.com/weixin_54106903?type=blog;
}
return 301 重定向url;

2、检查nginx配置文件是否正确:nginx -t

3、然后重载nginx服务:nginx -s reload

image-20231128224842659

4、访问测试即可:curl http://域名,或加-L访问重定向后的界面

image-20231128225437032

image-20231128225600941

1.5、配置多域名访问

1、编辑配置文件:vi /usr/local/nginx-1.25.3/conf/nginx.conf

找到代码块,我是重新加了一个server代码块,如果每个域名需要不同的处理逻辑或安全策略,使用不同的 server 块可能更清晰:
代码块1:
server {
        listen       80;
        server_name  A123;
        return 301 https://blog.youkuaiyun.com/weixin_54106903?type=blog;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
}
代码块2:
    server {
        listen       80;
        server_name  B123;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
    }
}

2、nginx -s reload

3、测试:curl http://域名

image-20231128231440857

1.6、如何配置反向代理

1、编辑配置文件:vi /usr/local/nginx-1.25.3/conf/nginx.conf

    server {
        listen       80;
        server_name  域名;;
        location / {
           # root   html;
           # index  index.html index.htm;
           proxy_pass https://www.baidu.com:443;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
    }
}
proxy_pass url; 即可

2、systemctl restart nginx

3、验证

image-20231129200141295

1.7、nginx配置IPv6

1、先确认你的域名解析到了服务器的IPv6地址

image-20231129233723523

2、编辑配置文件:vi /usr/local/nginx-1.25.3/conf/nginx.conf

    server {
        listen      [::]:80;
        server_name  v6.cjzzrr.cn;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
    }
}

3、重启nginx:systemctl restart nginx

4、查看是否有tcp6格式的80监听

image-20231129234032462

5、测试访问:curl -6 http://v6.cjzzrr.cn

或使用,实现确认你主机有v6环境才能访问v6网站:curl -6g http://[IPv6地址]

image-20231129234244226

2、nginx如何配置https

2.1、申请证书

推荐使用阿里云的证书:

image-20231129223221194

2.2、配置nginx

1、先在conf目录下创建cert目录:/usr/local/nginx-1.25.3/conf/cert

2、上传证书,因为证书文件较小,我用的rz上传的,yum -y install lrzsz,然后使用rz选择你本地的证书上传:

image-20231129224705075

3、编辑配置文件:vi /usr/local/nginx-1.25.3/conf/nginx.conf

参数如下:
    server {
        listen       443 ssl;
        server_name  www.cjzzrr.cn;
        ssl_certificate /usr/local/nginx-1.20.2/conf/cert/www.cjzzrr.cn.pem;
        ssl_certificate_key /usr/local/nginx-1.20.2/conf/cert/www.cjzzrr.cn.key;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

        location / {
            root   html;
            index  index.html index.htm;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
    }
}

4、重启服务:systemctl restart nginx

5、验证:正确

image-20231129225727325

image-20231129225714430

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timber woIf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值