安装
安装依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载 Nginx
复制所要下载的版本的下载连接:
比如说这里我下载的是稳定版本 nginx-1.26.3
在 Linux 服务器上使用 wget 命令下载(图个方便,你也可以直接下载后传到 Linux 服务器上):
wget http://nginx.org/download/nginx-1.26.3.tar.gz
解压缩包:
解压缩完如下:
编译安装
进入到 nginx 中,编译
./configure
安装:
make&&make install
安装完成后,nginx 程序的路径在 /usr/local/nginx
启动停止
进入 /usr/local/nginx/sbin
下执行 ./nginx
启动 nginx
附一个反向代理的案例,修改 nginx 的配置文件,然后执行 ./nginx -s reload
(修改配置文件后,可以使用 ./nginx -t
检查一下配置文件是否正确)
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.yourdomain.com;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
停止的话我们可以执行 ./nginx -s stop
配置
配置 SSL
上传证书到服务器上,可以使用 scp 命令,如下:
scp C:\ssl.example.com_cert\ssl.example.com.pem root@<远程服务器IP>:/etc/nginx/cert
scp C:\ssl.example.com_cert\ssl.example.com.key root@<远程服务器IP>:/etc/nginx/cert
编辑 nginx 配置文件 nginx.conf,添加以下信息
server {
## 必选配置
listen 443 ssl; # 开启监听443端口
server_name ssl.example.com; # 被监听的域名
ssl_certificate /etc/nginx/cert/ssl.example.com.pem; # 证书文件路径
ssl_certificate_key /etc/nginx/cert/ssl.example.com.key; # 私钥文件路径
## 可选配置
# ssl_session_timeout 5m; # 客户端可以重用会话参数的时间
# ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 允许的加密套件类型
# ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 允许的TLS协议类型
# ssl_prefer_server_ciphers on; # 协商加密算法时,优先使用服务端的加密套件,而不是客户端浏览器的加密套件
## 网站配置,与80端口的相关配置一致
root html;
index index.html index.htm;
location / {
root html;
index index.html index.htm;
}
}
编辑完成后保存,可以使用 ./nginx -t
检查配置是否正确,然后使用 ./nginx -s reload
重启 nginx 就好
问题
the "ssl" parameter requires ngx_http_ssl_module
该错误是 nginx 缺少 SSL 模块,解决步骤如下:
重新配置 SSL 模块:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --原来有的模块(如果有的话)
如果运行之后,最终报错如下:
需要下载 OpenSSL 库,如果没有报错,这一步跳过:
yum -y install openssl openssl-devel
编译。注意,这里不能 make install
否则会覆盖安装
make
替换已安装好的 nginx 包
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
先停止 nginx 服务
./usr/local/nginx/sbin/nginx -s stop
将刚刚编译好的 nginx 覆盖掉原有的 nginx
# 在Nginx解压目录下使用以下命令
cp ./objs/nginx /usr/local/nginx/sbin/
查看下载 SSL 模块是否成功
/usr/local/nginx/sbin/nginx -V
此时应该显示为即配置成功:
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
然后去启动以下 nginx 就可以了
设置文件上传大小限制
修改 nginx 中 http 配置:
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 10M; #上传文件大小限制
修改完重启 nginx