【web】Nginx服务安装、配置解释

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 文章目录前言一、文件路径1.1 源码包安装

一、文件路径

1.1 源码包安装

  • 自动化部署脚本(需要提前下载源码包到指定目录/opt)
install_nginx(){
systemctl disable --now firewalld           #关闭防火墙
setenforce 0
yum -y install pcre-devel zlib-devel gcc gcc-c++ make #安装环境依赖包
useradd -M -s /sbin/nologin nginx           #创建nginx系统用户
tar xf /opt/nginx-1.12.0.tar.gz -C /opt/        #解压源码包
cd /opt/nginx-1.12.0/
                            #配置nginx模块
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-stream \
--with-http_stub_status_module
make -j 4 && make install               #源码编译安装
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    #创建命令软链接,方便管理
cat > /lib/systemd/system/nginx.service <<EOF     #将nginx加入系统管理服务
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
chmod 754 /lib/systemd/system/nginx.service       #为nginx添加执行权
systemctl enable --now nginx.service          #配置nginx为开机自启
}

1.2 yum安装

cd /etc/yum.repos.d/          #添加nginx的yum源
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
yum clean all && yum makecache      #重新加载yum缓存
yum install -y nginx          #yum安装nginx
systemctl start nginx         #启动nginx


二、全局配置

#user  nobody;              #运行用户:若源码配置的时候没有指定用户,则默认nginx运行用户为nobody;
worker_processes  1;            #工作进程:最大的工作进程数,一般设置与cpu核数相同;
#error_log  logs/error.log;       #日志收集:任何等级的错误日志都被收集;
#error_log  logs/error.log  notice;   #日志收集:仅收集notice(注意)级别的错误日志;
#error_log  logs/error.log  info;   #日志收集:仅收集info(信息)级别的日志;
#pid        logs/nginx.pid;       #生成文件:取消注释会生成存放nginx pid号的文件/usr/local/nginx/logs/nginx.pid;
events {
    worker_connections  1024;     #连接数:每个工作进程能进行的最大连接数;还受到系统内核的限制ulimit -n查看;
                      #临时修改系统内核:ulimit -n 数字 临时修改最大允许数;
                      #永久修改系统内核:vim /etc/security/limits.conf;
                      #nginx hard nofile 10240;nginx hard nofile 10240
}

三、网页配置

http {
  include mime.types;                             #文件扩展名与文件类型映射表
  default_tyoe application/octet-stream;                    #默认文件类型
  #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  #日志格式设置
  #                  '$status $body_bytes_sent "$http_referer" '
  #                  '"$http_user_agent" "$http_x_forwarded_for"';
  #access_log  logs/access.log  main;                     #日志存储位置
  keepalive_timeout  65;                            #长链接时间设置,数字0表示不设置长链接
  #gzip  on;                                  #gip模块,设置是否开启gizp压缩传输
  server{                                   #子模块:设置web服务的监听配置
    listen       80;                            #设置监听地址和端口:例:192.168.13.10:80
    server_name  localhost;                         #基于域名的主机:例:www.han.com
    #charset utf-8;                             #默认字符集:utf-8为万国字符集
    location {                                #server子配置:设置客户端访问匹配规则
      root   html;                            #根目录:网站首页默认根目录
      index  index.html index.htm;                    #默认首页:网站首页默认加载文件
    }
  }
  error_page   500 502 503 504  /50x.html;                  #网站首页错误页配置,显示内容及路径
}

四、拓展

4.1 location/rewrite/正则匹配/配置优化

location匹配、rewrite重写

4.2 负载均衡

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
缓存 负载均衡 应用服务中间件
nginx配置详解
配置详解
51 24
nginx配置详解
|
4天前
|
缓存 负载均衡 应用服务中间件
nginx配置
nginx配置详解
26 2
nginx配置
|
19小时前
|
缓存 负载均衡 应用服务中间件
nginx配置详解
nginx配置详情
11 0
|
5天前
|
安全 API 网络架构
Python RESTful API设计新篇章,打造高效、易用、安全的Web服务接口,你准备好了吗?
【7月更文挑战第22天】在数字化转型中,RESTful API借助Python的Flask和Django REST Framework,提供高效、易用和安全的接口设计。Flask示例展示了简洁的CRUD操作,Swagger等工具增进API文档的易用性,而HTTPS、JWT和输入验证确保安全性。Python RESTful API设计涉及效率、可用性和安全,是不断进化的Web服务接口的关键。准备好踏上这一新篇章了吗?一起探索,创造卓越!
|
4天前
|
缓存 负载均衡 应用服务中间件
nginx配置详解
nginx配置详解
30 0
|
13天前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
|
16小时前
|
负载均衡 网络协议 应用服务中间件
Nginx负载配置
Nginx负载配置
|
16小时前
|
负载均衡 网络协议 应用服务中间件
Nginx配置以及热升级
Nginx配置以及热升级
|
15天前
|
负载均衡 应用服务中间件 API
深入理解 Nginx 与 Kong 的配置与实践
在微服务架构中,Nginx 用于配置负载均衡,如示例所示,定义上游`pay-service`包含不同权重的服务节点。Kong API 网关则通过service和route进行服务管理和路由,与Nginx的upstream和location类似。通过Kong的命令行接口,可以创建upstream、target、service和route,实现对后端服务的负载均衡和请求管理。Nginx和Kong协同工作,提供高效、灵活的API管理和流量控制。
18 1
深入理解 Nginx 与 Kong 的配置与实践
|
25天前
|
JavaScript 应用服务中间件 nginx
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
48 10