Nginx网站服务

本文详细介绍了Nginx的特性、与Apache的对比、安装步骤以及配置文件详解,包括Nginx作为高性能HTTP服务器和反向代理的优势。在安装部分,讲解了如何关闭防火墙、安装依赖、编译安装以及启动、停止和管理Nginx服务。在配置文件部分,提到了全局配置、I/O事件、http配置以及虚拟主机的设置,包括基于域名、IP地址和端口的配置。此外,还介绍了如何进行服务管理和日志处理。
摘要由CSDN通过智能技术生成

目录

 

一、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基于端口

修改配置文件中监听端口

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值