Nginx网站服务

Nginx

  • 是一个开源的高性能的Web服务器软件
  • 是一个反向代理服务器
  • 可以用于负载均衡、HTTP缓存、静态资源服务以及作为反向代理等功能。
  • 占用资源少,处理并发能力强,能够支持大量的并发连接。
  • 由于其高性能、稳定性和灵活性,Nginx已经成为了很多大型网站和应用的首选服务器。

Nginx的进程

  • master进程:用于管理worker进程,加载配置文件
  • worker进程:用于处理请求连接

Nginx可以运用的应用场景

  1. Web网站服务,处理http静态页面请求
  2. 虚拟主机,实现一个服务器用于做多个网站站点
  3. 反向代理、负载均衡,可以作为网关代理服务器接收客户端的请求转发给后端节点服务器集群
  4. web缓存服务器

安装部署 Nginx 服务

(1)关闭防火墙

复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/sysconfig/selinux

(2)安装nginx环境依赖包

复制代码
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

(3)准备好nginx目录上传软件压缩包并解压

复制代码
cd /opt
mkdir nginx
tar xf nginx-1.12.0.tar.gz

(4)创建运行用户

复制代码
useradd -M -s /sbin/nologin nginx

(5)进入软件包目录进行配置软件模块

复制代码
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

(6)编译

复制代码
make -j 2 

(7)安装

复制代码
make install

(8)将 nginx 的可执行程序文件放入路径环境变量的目录(用于系统识别)

创建软连接,用于路径优化

复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(9)添加 Nginx 系统服务

复制代码
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

(10)添加权限并重启nginx服务

复制代码
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

Nginx如何进行平滑升级?

  1. 官网下载最新版本的nginx
  2. 上传到nginx服务器,使用 tar 进行解压
  3. 使用 .configure 进行配置,按照原有的配置进行配置
  4. 使用用make编译升级成二进制文件
  5. 把二进制文件 nginx 替换掉原有的老文件
  6. 使用 make upgrade 进行升级或用kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)

Nginx 与 Apache 有何区别?

最核心的区别:

Nginx 采用异步非阻塞机制,多个连接可以对应一个进程

Apache 采用的是同步阻塞+多进程/线程模型,一个连接对应一个进程

  • Nginx 抗并发能力更高
  • Nginx 更轻量,内存、CPU资源消耗更少
  • Nginx 配置简洁,使用场景多,稳定性高

Nginx虚拟主机

Nginx虚拟主机是一种配置多个域名或网站在同一台服务器上的方式。通过使用Nginx的虚拟主机功能,可以将不同的域名指向不同的项目或网站,并且在同一台服务器上实现多个网站的部署。

要配置Nginx虚拟主机,首先需要在Nginx的配置文件中定义多个server块。每个server块对应一个域名或网站。在每个server块中,需要指定域名或网站的监听端口、文件根目录、日志文件等配置信息。

Nginx有三种类型的虚拟主机

(1)基于域名的虚拟主机

server {

server_name XXX; #指定不同的域名

}

(2)基于IP的虚拟主机

server {

listen <IP>:端口; #指定不同的IP

}

(3)基于端口的虚拟主机

server {

listen IP:<端口>; #指定不同的端口

}

相关推荐
莫的感情17 小时前
下载按钮点击一次却下载两个文件问题
前端
一个很帅的帅哥17 小时前
JavaScript事件循环
开发语言·前端·javascript
小宁爱Python17 小时前
Django Web 开发系列(二):视图进阶、快捷函数与请求响应处理
前端·django·sqlite
fox_17 小时前
深入理解React中的不可变性:原理、价值与实践
前端·react.js
Github项目推荐17 小时前
你的错误处理一团糟-是时候修复它了-🛠️
前端·后端
心灵宝贝17 小时前
申威(sw_64)架构下如何安装java-1.8.0-swjdk的rpm包?
linux·运维·服务器
Code小翊17 小时前
C语言bsearch的使用
java·c语言·前端
云枫晖17 小时前
Webapck系列-初识Webpack
前端·javascript
好记忆不如烂笔头abc17 小时前
linux系统记录登录用户的所有操作
java·linux·服务器
慧一居士17 小时前
HTML5 功能介绍,使用场景,对应功能点完整使用示例
前端