CentOS编译安装Nginx
2020-12-16 本文已影响0人
骆昊宇
壹。安装依赖包
yum update
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel wget
贰。下载解压安装包
// 稳定版
wget http://nginx.org/download/nginx-1.18.0.tar.gz
// 解压
tar -zxvf nginx-1.18.0.tar.gz && cd nginx-1.18.0
叁。编译配置
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream && make && make install
肆。环境变量和启动以及防火墙
// 创建环境变量
echo "export PATH=$PATH:/opt/nginx/sbin" > /etc/profile.d/nginx.sh
// 使环境变量生效
source /etc/profile
伍。启动重启和停止
cd /opt/nginx/sbin
// 启动
./nginx
// 查看是否启动
netstat -ntlp | grep nginx
// 输出:tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10965/nginx: master
// 查看进程
ps -ef|grep nginx
// 重启
./nginx -s reload
// 停止
./nginx -s stop
./nginx -s quit
// 查看防火墙放行端口
firewall-cmd --list-ports
// 放行端口(需要重启防火墙:firewall-cmd --reload)
firewall-cmd --zone=public --add-port=80/tcp --permanent
// 关闭端口(需要重启防火墙:firewall-cmd --reload)
firewall-cmd --zone=public --remove-port=80/tcp --permanent
// 重启防火墙
firewall-cmd --reload
// 开机启动防火墙
systemctl enable firewalld
// 开启防火墙
systemctl start firewalld
// 禁止防火墙开机启动
systemctl disable firewalld
// 停止防火墙
systemctl stop firewalld
陆。加入服务
// 创建服务
vim /lib/systemd/system/nginx.service
// 粘贴(根据情况修改路径)
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload
ExecStop=/opt/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
// 杀死进程 pkill nginx
// 启动服务
systemctl start nginx
// 查看服务状态
systemctl status nginx
// 停止服务
systemctl stop nginx
// 重启服务
systemctl reload nginx
// 开机自动启动
systemctl enable nginx
// 取消开机启动
systemctl disable nginx
# 请求报文过大解决方案
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者到区别是:http{} 中控制着所有nginx收到的请求。而报文大小限制设置在server{}中,则控制该server收到的请求报文大小,同理,如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。