今天尝试在腾讯轻量云上安装nginx,顺便记录一下安装过程。
先看一下我的服务器版本
在线安装
首先安装EPEL并更新yum
1sudo yum install epel-release -y #安装,默认同意
2sudo yum update -y #更新,默认同意
可以直接yum安装nginx,并没有指定安装版本
1sudo yum install nginx -y #安装
2sudo systemctl start nginx # 启动nginx
启动后查看nginx状态
看到 active(running) 就代表nginx已经启动
设置Nginx开机自启动
1sudo systemctl enable nginx
打开Nginx配置文件,调整网站目录等一些配置
1# 跳转到配置文件所在目录
2cd /etc/nginx/
3# 查看nginx.conf 配置
4# cat nginx.conf
我自己的习惯,先备份当前的conf文件,然后使用新的conf写配置文件。但操作配置之前,优先检查一下OpenSSL的版本,我会升级到新的稳定版,然后再配置。
先检查当前OpenSSL版本
1openssl version # 查看当前OpenSSL版本
升级OpenSSL,我喜欢高版本,还支持TLS1.3
OpenSSL官网 https://www.openssl.org/source/
1# 下载指定版本安装包,操作步骤根据自己的版本号定
2# wget https://www.openssl.org/source/openssl-3.1.5.tar.gz
3wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
4# 解压缩
5tar -zxvf openssl-1.1.1k.tar.gz
6cd openssl-1.1.1k
7# 配置安装选项(可以指定安装路径等)
8./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
如果出现以下错误
则使用 yum -y install perl-IPC-Cmd
,安装好之后重新配置,看到下图就是配置成功了。
1# 编译安装
2make
3sudo make install
4
5# 删除旧版本文件
6rm -rf /usr/bin/openssl
7rm -rf /usr/include/openssl
8rm -rf /usr/lib64/libssl.so
9rm -rf /usr/lib64/libcrypto.so
10rm -rf /usr/lib/libssl.so
11rm -rf /usr/lib/libcrypto.so
12
13# 配置软连接(路径要和上面配置的路径保持一致,文件名要按版本来)
14ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
15ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
16ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
全都安装完成后,查看是否安装成
显示自己的版本号就说明成功了
接下来配置nginx.conf
,可以按找个模版进行配置,供参考
# generated 2024-03-17, Mozilla Guideline v5.7, nginx 1.20.1, OpenSSL 3.1.5, modern configuration
# https://ssl-config.mozilla.org/#server=nginx&version=1.20.1&config=modern&openssl=3.1.5&guideline=5.7
server {
listen 80 default_server;
listen [::]:80 default_server;
# 301重定向,转到https
location / {
return 301 https://$host$request_uri;
}
}
server {
#HTTPS的默认访问端口443。
listen 443 ssl http2;
listen [::]:443 ssl http2;
# 配置域名
server_name XXXX.XXXX;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
# modern configuration
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
# verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
# replace with the IP address of your resolver
resolver 127.0.0.1;
}