Nginx网站服务配置文件实操看这篇就够了(一)

简介: Nginx网站服务配置文件实操看这篇就够了(一)

一、Nginx服务基础


1.1 关于Nginx

Nginx在国内的应用较为广泛,是一款高性能、轻量级web服务软件,性能是Apache的2-3倍,由俄罗斯人开发,目前已被美国公司收购


稳定性高

系统资源消耗低(内存)

对HTTP并发连接的处理能力高:单台物理服务器可支持30000~50000个并发请求(实际上2-3万)

1.2 Nginx相对于Apache的优点

轻显级,同样是web服务,比Apache 占用更少的内存及资源;

高并发,Nginx处理请求是异步非塞的,而Apache则是阻塞型的,在高并发下Nginx 能保持低资源低病耗高性能;

高度模块化的设计;

编写模块相对简单;

社区活跃,各种高性能模块出品迅速;

1.3 Apache 相对于Nginx的优点

rewrite,比Nginx 的rewrite强大;

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

少bug,Nginxbug相对较多;

超稳定存在就是理由,一般来说,需要性能的web服务,用Nginx。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理,

1.4 Nginx和Apache的差异

·Nginx是一个基于事件的Web服务器,Apache是一个基于流程的服务器;

·Nginx所有请求都由一个线程处理,Apache单个线程处理单个请求;

·Nginx避免子进程的概念,Apache是基于子进程的;

·Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方面一般;

·Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件;

·Nginx支持热部著,Apache不支持热部著;

·Nginx对于静态文件处理具有更高效率,Apache相对一般;

·Nginx在反向代理场景具有明显优势,Apache相对一般。


二、Nginx部署


1.关闭防火墙,将安装nginx所需软件包传到/opt目录下

systemctl stop firewalld 
systemctl disable firewalld 
setenforce 0

nginx依赖包下载地址

链接:https://pan.baidu.com/s/1xPo60mP1bS18oiFTauEy1w

提取码:gk3o



2.安装依赖包


nginx的配置及运行需要pcre、zlib等软件包的支持,因此需要安装这些软件的开发包,以便提供相应的库和头文件

yum -y install pcre-devel zlib-devel gcc gcc-c++ make
#pcre提供正则表达式
#zlib提供压缩功能
#gcc gcc-c++ make编译安装工具

3.创建运行用户、组

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

useradd -M -s /sbin/nologin nginx 
#创建nginx 用户,设置为不可登录

4.编译安装Nginx

cd/opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \       #指定nginx的安装路径
--user=nginx \                    #指定用户名(后期可以通过配置文件去改)
--group=nginx \                   #指定组名
--with-http_stub_status_module    #启用http stub status module模块以支持状态统计
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/      #让系统识别nginx的操作命令


遇到一个报错信息,原因是进行换行的时候\与前面的命令没有空格




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


nginx -t    #检查配置文件是否配置正确(语法)
#启动
nginx
#停止
cat /usr/local/nginx/logs/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号> 升级方法1
新版本升级:
tar-zxvf nginx-1.xx.xx.tar.gz
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \ 
--with-http_ssl_module
#ssl是一种安全认证模块
make 
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old 
cp objs/nginx /usr/local/nginx/sbin/nginx
#kill -USR2 <PID号> 升级方法1 
make upgrade 升级方法2
#或者先killall nginx,再/usr/local/nginx/sbin/nginx 升级方法3



Apache和nginx的默认端口都是80,所以他俩不可能同时开启,要么删一个,要么改端口


6.添加nginx服务


方法1:通过脚本

#!/bin/bash
#chkconfig:35 99 20
#desc: this is nginx control scprit 
CMD="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
#通过命令获取nginx的命令和PID
case "$1" in 
start)
    $CMD
;; 
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



方法2:通过system中创建服务

vim /lib/systemd/system/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为停止命令
Privatermp=True表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]服务安装的相关设置,可设置为多用户


此时服务已经起来


默认文件位置在/usr/local/nginx/html/

目录
相关文章
|
8天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
8天前
|
应用服务中间件 nginx
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
|
8天前
|
网络协议 应用服务中间件 Linux
在Redhat 9部署nginx服务
Nginx是一个高性能、开源的HTTP和反向代理服务器,以其异步非阻塞模型处理高并发,并具有轻量级、高可靠性、良好扩展性和热部署特性。在Redhat 9.2上安装nginx-1.24.0涉及安装依赖、下载解压、源码编译、配置环境变量及启动服务。安装步骤包括:yum安装依赖包,下载解压Nginx,运行configure脚本预编译,make && make install编译安装,然后赋权、配置环境变量,关闭防火墙和SELinux,最后启动Nginx并进行浏览器测试。
487 3
|
8天前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
26 1
|
8天前
|
小程序 应用服务中间件 Linux
【Nginx】微信小程序后端开发、一个域名访问多个服务
【Nginx】微信小程序后端开发、一个域名访问多个服务
19 0
|
8天前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
12 0
|
8天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
8天前
|
存储 NoSQL 应用服务中间件
Etcd+Confd实现Nginx配置文件自动管理
Etcd+Confd实现Nginx配置文件自动管理
|
8天前
|
Java 应用服务中间件 PHP
Nginx配置文件解释
Nginx配置文件解释
19 1
|
8天前
|
前端开发 应用服务中间件 网络安全
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
nginx配置SSL证书配置https访问网站 超详细(附加配置源码+图文配置教程)
110 0