IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Nginx网站服务 -> 正文阅读

[系统运维]Nginx网站服务

目录

?

一、Nginx简介

概述:

Nginx和Apache的优缺点比较

nginx相对于apache的优点:

apache相对于nginx的优点

Nginx web网站服务应用

二、Nginx编译安装步骤详解

1.关闭防火墙,安装依赖关系包

2.新建用户 和组便于管理

3.编译安装

4.做软连接,方便系统识别nginx命令

5.检查、启动、重启、停止 nginx服务

6.查看nginx版本信息

三、Nginx配置文件

3.1添加 Nginx 系统服务

3.2Nginx主配置文件

3.3全局配置

3.4I/O事件配置

?3.5http配置

3.6基于域名的nginx 虚拟主机

3.7基于IP地址

3.8基于端口


一、Nginx简介

概述:

  • 高性能的HTTP和反向代理服务器。

  • 轻量级的高性能的web服务器/反向代理服务器/电子邮件(IMAP/POP3)代理服务器

  • 单台物理服务器可支持2万/3万个并发请求

  • 基于事件的web服务器,apache基于流程的web服务器

Nginx和Apache的优缺点比较

都用80端口,启动其中一个再启动另一个会失败

nginx相对于apache的优点:

  • 轻量级,同样起web服务,比apache占用更少的内存及资源

  • 抗并发,nginx处理请求是异步非阻塞的,而apache是阻塞型的在高并发下,nginx能保持低资源低消耗高性能

  • 高度模块化的设计,编写模块相对简单

  • 处理请求是异步非阻塞,apache是同步阻塞型

  • 可以多个连接对应一个进程,apache一个连接对应一个进程

apache相对于nginx的优点

  • 模块多,基本想到的都可以找到

  • 少bug, nginx的bug相对较多

  • 超稳定

Nginx web网站服务应用

  • 轻量级:系统资源消耗较少
  • 高性能:抗并发能力强,一般可处理2-3万并发连接数,做多理论上可支持5万并发
  • 稳定性高:宕机概率小

常用使用场景

  • web网站服务
  • 虚拟主机(基于IP、端口、域名)
  • 反向代理

二、Nginx编译安装步骤详解

1.关闭防火墙,安装依赖关系包

1. #关闭防火墙
systemctl stop firewalld
setenforce 0
?
2. #安装依赖关系包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

2.新建用户 和组便于管理

????????Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限

useradd -M -s /sbin/nologin nginx

3.编译安装

#切换至opt目录,将压缩包传进来
[root@localhost opt]#cd /opt
[root@localhost opt]#ls
nginx-1.12.0.tar.gz
?
#解压文件
[root@localhost opt]#tar -zxf nginx-1.12.0.tar.gz?
[root@localhost opt]#ls
nginx-1.12.0 ?nginx-1.12.0.tar.gz
?
#切换至解压后的文件夹编译
[root@localhost nginx-1.12.0]#
./configure \

#指定nginx的安装路径
> --prefix=/usr/local/nginx \? ? ?

#指定用户名? ? ? ? ? ? ? ? ? ? ??
> --user=nginx \

#指定组名
> --group=nginx \

#启用 http_stub_status_module 模块以支持状态统计
> --with-http_stub_status_module
?
make && make install

4.做软连接,方便系统识别nginx命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

5.检查、启动、重启、停止 nginx服务

//检查配置文件是否配置正确

nginx -t? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ??

//启动
nginx

//停止

cat /usr/local/nginx/logs/nginx.pid? ? ? ? ??查看nginx的PID号

kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx

//重载

kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx

//日志分割,重新打开一个空的日志文件,后续产生的日志将写入这里

kill -USR1 <PID号>

//平滑升级

kill -USR2 <PID号>

6.查看nginx版本信息

nginx -v

三、Nginx配置文件

3.1添加 Nginx 系统服务

法一:脚本

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
  $COM
;;

stop)
  kill -s QUIT $(cat $PID)
;;

restart)
  $0 stop
  $0 start
;;

reload)
  kill -s HUP $(cat $PID)
;;

*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1

esac
exit 0

//在脚本外执行

chmod +x /etc/init.d/nginx
chkconfig --add nginx	

//添加为系统服务
systemctl stop nginx
systemctl start nginx

法二:?将nginx命令加入服务

vim /lib/systemd/system/nginx.service

[Unit]编写结束后

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

[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

?[Unit]:服务的说明
Description:描述服务
After:依赖,当依赖的服务启动之后再启动自定义的服务

[Service]服务运行参数的设置
Type=forking是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程。
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径

[Install]服务安装的相关设置,可设置为多用户

3.2Nginx主配置文件

vim /usr/local/nginx/conf/nginx.conf

3.3全局配置

#user nobody;? ? ? ? ? ? ? ? ? ? ? ? ?#运行用户,若编译时未指定则默认为 nobody
worker_processes 1;? ? ? ? ? ? ? ?#工作进程数量,一般设置为和 CPU 核数一样
#error_log logs/error.log; ?? ??? ?#错误日志文件的位置
#pid logs/nginx.pid;? ? ? ? ? ? ? ? ? #PID 文件的位置

3.4I/O事件配置

events {
? ? use epoll;? ? ? ? ? ? ? ? ? ? ? ? ? ? #添加一行,使用 epoll 模型以提高性能,2.6 以上版本建议使用
? ? worker_connections ?4096; ? #每个进程处理4096个连接
}

????????epoll(socket描述符)是Linux内核]为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

????????若工作进程数为 4,每个进程处理 2000个连接,则允许 Nginx 正常提供服务的连接数 为8000,具体还要看服务器硬件、网络带宽等物理条件的性能表现。

????????要想提高每个进程的连接数需执行"ulimit -n 65535"命令临时修改本地每个进程可以同时打开的最大文件数。

????????在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制

????????可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制

?临时修改本地每个进程可以同时打开的最大文件数

ulimit -n 5000

再次查看

?3.5http配置

http {
##文件扩展名与文件类型映射表
? ? include ? ? ? mime.types;

##默认文件类型
? ? default_type ?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;
?

##支持文件发送(下载)
? ? sendfile ? ? ? ?on;
??? ?  ##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使 用sendfile的时候使用
? ? #tcp_nopush ? ? on;

##连接保持超时时间,单位是秒
? ? #keepalive_timeout ?0;
? ? keepalive_timeout ?65;

##gzip模块设置,设置是否开启gzip压缩输出
? ? #gzip ?on;

##Web 服务的监听配置

server {
##监听地址及端口  端口前不加ip地址,默认监听全部
?? ?listen 80;?
##站点域名,可以有多个,用空格隔开
?? ?server_name www.xc.com;

##网页的默认字符集
?? ?charset utf-8;

##根目录配置
?? ?location / {
?? ?
##网站根目录的位置/usr/local/nginx/html   root代表根目录
?? ??? ?root html;
?? ?
##默认首页文件名
?? ??? ?index index.html index.htm;
?? ?}
?

##内部错误的反馈页面
?? ?error_page 500 502 503 504 /50x.html;
?? ?##错误页面配置
?? ?location = /50x.html {
?? ??? ?root html;
?? ?}
}
}

3.6基于域名的nginx 虚拟主机

为虚拟主机提供域名解析

  • 配置DNS

  • 修改/etc/hosts文件

vim /etc/hosts

?为虚拟主机准备网页文档

#创建网页目录
mkdir -p /var/www/html/abc
mkdir -p /var/www/html/def
?
#编写简易首页html文件
echo "<h1>welcome to www.abc.com</h1>" > /var/www/html/abc/index.html
echo "<h1>welcome to www.def.com</h1>" > /var/www/html/def/index.html

修改nginx配置文件

?检查语法并重启,访问测试

nginx -t

systemctl restart nginx.service

3.7基于IP地址

添加网络接口

?修改nginx配置文件

?

?检查语法并重启,访问测试

nginx -t

systemctl restart nginx.service

3.8基于端口

修改配置文件中监听端口

?检查语法并重启,访问测试

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:56:36  更:2022-10-22 21:57:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/19 10:07:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码