web服务之nginx部署
本期内容概要
- 了解web服务
- Nginx和Apache的对比
- 部署Nginx
内容详细
1.什么是web服务
Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作
根据W3C的定义,Web服务应当是一个软件系统,用以支持网络间不同机器的互动操作。
网络服务通常是许多应用程序接口所组成的,它们透过网络,例如国际互联网的远程服务器端,执行客户所提交服务的请求
web就是B/S架构
2.web服务器软件
# 网络模型
01 select
02 poll
03 epoll
1.apache
仅支持 select网络模型
2.Nginx
部署在Linux中 使用 epoll网络模型
官网:https://nginx.org/
软件下载:https://nginx.org/download/




3.部署Nginx
1.安装方式
01 yum安装(从官网安装 以 web01服务器为例)
[root@web01 ~]# vim /etc/yum.repos.d/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
module_hotfixes=true
[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
module_hotfixes=true
[root@web01 ~]# yum install nginx -y
[root@web01 ~]# systemctl stop httpd
[root@web01 ~]# systemctl start nginx
安装完成过后 直接在浏览器输入客户端IP连接测试
02 二进制安装
详见 rpm安装
https://www.cnblogs.com/jgx0/p/15700136.html
03 编译安装(以 web02服务器为例)
先从官网下载 nginx-1.20.2.tar.gz 压缩包
[root@web02 ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz
[root@web02 ~]# tar -xf nginx-1.20.2.tar.gz
[root@web02 ~]# vim /etc/yum.repos.d/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
module_hotfixes=true
[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
module_hotfixes=true
[root@web02 ~]# cd nginx-1.20.2
[root@web02 nginx-1.20.2]# ./configure
[root@web02 nginx-1.20.2]# make
[root@web02 nginx-1.20.2]# make install
因为没有在环境变量 直接用会提示未安装 所以要用绝对路径执行nginx
[root@web02 nginx]# /usr/local/nginx/sbin/nginx -v
- nginx启动成功

4.平滑增加Nginx模块
'''
增加模块必须重新编译
'''
[root@web02 ~]# rm -rf nginx-1.20.2
[root@web02 ~]# tar -xf nginx-1.20.2.tar.gz
[root@web02 ~]# cd nginx-1.20.2
[root@web02 nginx-1.20.2]# ./configure --with-http_ssl_module
一般会出现报错 安装报错提示解决:
[root@web02 nginx-1.20.2]# yum install openssl openssl-devel -y
[root@web02 nginx-1.20.2]# ./configure --with-http_ssl_module
[root@web02 nginx-1.20.2]# make
[root@web02 nginx-1.20.2]# make install
[root@web02 nginx-1.20.2]# /usr/local/nginx/sbin/nginx -V
会显示 --with-http_ssl_module 模块已经加入
5.Nginx的命令
1. -v : 打印版本号
[root@web01 ~]# nginx -v
nginx version: nginx/1.20.2
2. -V : 打印版本号和配置项
3. -t : 检查配置文件
4. -T : 测试配置文件并启动
5. -q : 打印错误日志
6. -s : 操作进程
stop : 停止
quit : 退出
reopen : 重启(关机之后在启动)
reload : 重载(重载配置文件)
7. -p : 指定nginx的工作目录
8. -e : 指定错误日志路径
9. -c : 指定配置文件的路径
10. -g : 设置一个全局的Nginx配置项
[root@web01 ~]# nginx -g 'daemon off;'
6.Nginx配置文件
分为:
全局配置(全局的) 和 模块配置(大括号里面的)
[root@web01 ~]# cat /etc/nginx/nginx.conf
#####
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
#####
1.全局配置
01 user : 指定Nginx的启动用户
02 worker_processes : 定义Nginx的worker进程数
auto : CPU数量
03 error_log : 错误日志路径
04 pid : pid的存放文件路径
05 events : 模块配置
worker_connections :每一个worker进程最多同时接入多少个请求
use : 指定Nginx的网络模型
06 http : web服务的模块
include : 加载外部的配置项
default_type : 如果找不到文件的类型,则按照指定默认类型处理
log_format : 定义日志格式
例如改为json格式日志:
log_format json '{"@timestamp":"$time_iso8601",'
'"host":"$server_addr",'
'"service":"nginxTest",'
'"trace":"$upstream_http_ctx_transaction_id",'
'"log":"log",'
'"clientip":"$remote_addr",'
'"remote_user":"$remote_user",'
'"request":"$request",'
'"http_user_agent":"$http_user_agent",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"upstreamtime":"$upstream_response_time",'
'"upstreamhost":"$upstream_addr",'
'"http_host":"$host",'
'"url":"$uri",'
'"domain":"$host",'
'"xff":"$http_x_forwarded_for",'
'"referer":"$http_referer",'
'"status":"$status"}';
access_log /var/log/nginx/access.log json ;
07 sendfile : 高效读取文件
08 keepalive_timeout : 长连接保持连接的
HTTP 1.0 短链接
HTTP 1.1 长连接
09 server : 网址模块
listen : 监听的端口
server_name : 定义域名
location : 访问路径
root : 指定网址路径
index : 指定网址的索引文件
7.超级玛丽和象棋游戏搭建
1.上传代码
2.编辑配置文件
创建游戏目录:
[root@web01 opt]# mkdir /opt/Super_Marie
[root@web01 opt]# mkdir /opt/Chinese_chess
[root@web01 opt]# cd /etc/nginx/conf.d
[root@web01 conf.d]# vim game.conf
写入以下内容:
server {
listen 80;
server_name game.Marie.com;
location / {
root /opt/Super_Marie;
index index.html;
}
}
[root@web01 conf.d]# vim game1.conf
写入以下内容:
server {
listen 80;
server_name game.chess.com;
location / {
root /opt/Chinese_chess;
index index.html;
}
}
3.测试配置文件是否正常
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
4.重启Nginx
[root@web01 conf.d]# systemctl restart nginx
5.Windows域名解析
目录: C:\Windows\System32\drivers\etc\hosts
文本内写入并保存(如果没有该文件:hosts 直接创建普通文本即可):
192.168.15.7 game.Marie.com
192.168.15.7 game.chess.com
6.测试
浏览器输入网址:
game.Marie.com
game.chess.com
正常打开游戏就没问题

web服务之nginx部署的更多相关文章
- web服务器之nginx与apache
最近准备架设php的web服务器,以下内容可供参考. 1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞 ...
- web服务器之nginx和apache的区别
① apache属于重量级的服务器,nginx属于轻量级的服务器; 区别在于对一些功能的支持,比如: pathinfo,php模块方面 ② nginx抗高并发能力强. 由于nginx采用的是异步非阻 ...
- Web服务器之Nginx详解(操作部分)
大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...
- Web服务器之Nginx详解(理论部分)
大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...
- nginx作为web服务以及nginx.conf详解
Nginx系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1.nginx简介 nginx是一个优秀的web服务程序.反向代理程序.它采用非 ...
- 【转】Web服务器之Nginx详解(理论部分)
大纲 一.前言 二.Web服务器提供服务的方式 三.多进程.多线程.异步模式的对比 四.Web 服务请求过程 五.Linux I/O 模型 六.Linux I/O 模型具体说明 七.Linux I/O ...
- Linux系统WEB服务之Nginx基础入门
一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...
- WEB 服务应用 Nginx之安装篇
一.Nginx 源码包安装与配置 1.环境准备 操作系统.内核版本: CentOS 6.8 2.6.32-642.el6.x86_64 Nginx 软件版本: nginx-1.10.2 2.创建Ng ...
- linux nginx 部署多套服务(以react包为例)
前言 今天我特地写下笔记,希望可以完全掌握这个东西,也希望可以帮助到任何想对学习这个东西的同学. 本文用nginx部署服务为主要内容,基于CentOs 7.8系统. 文档版本:1.0.1 更新时间:2 ...
随机推荐
- 三维引擎导入obj模型全黑总结
最近有客户试用我们的三维平台,在导入模型的时候,会出现模型全黑和不可见的情况.本文说下全黑的情况. 经过测试,发现可能有如下几种情况. obj 模型没有法线向量 如果obj模型导出的时候没有导出法线向 ...
- Ubuntu下STL源码文件路径+VS2010下查看STL源码
Ubuntu版本信息 然后STL源码位置就在 /usr/include/c++/7/bits /usr/include/c++/7.4.9/bits 这两个文件下都有 然后我日常写程序用的Window ...
- 【Netty】最透彻的Netty原理架构解析
这可能是目前最透彻的Netty原理架构解析 本文基于 Netty 4.1 展开介绍相关理论模型,使用场景,基本组件.整体架构,知其然且知其所以然,希望给大家在实际开发实践.学习开源项目方面提供参考. ...
- Dos窗口下中文乱码问题
最近用Datax工具进行数据同步时,在DOS窗口下出现了中文乱码问题,导致一些错误只能到Log中查看,在网上找了一些方法,记录使用成功的方法. Dos命令:chcp 通过cmd进入Dos命令窗口,执行 ...
- Gitlab安装操作说明书
一.Gitlab安装操作步骤 登录官方网站https://about.gitlab.com/downloads/根据你所需要的系统版本,作者使用的是centos6, 检查您的服务器是否符合硬件要求.g ...
- 【编程思想】【设计模式】【行为模式Behavioral】command
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/command.py #!/usr/bin/env pyt ...
- sqlserver 各种判断是否存在(表、视图、函数、存储过程等)
1.判断表是否存在 select * from sysobjects where id = object_id(表名) and OBJECTPROPERTY(id, N'IsUserTable') = ...
- IT服务生命周期
一.概述 IT服务生命周期由规划设计(Pianning&Design).部署实施(Implementing).服务运营(Opera,tion).持续改进(Improvemenit)和监督管理( ...
- Mybatis动态SQL语句使用
在实际开发中,有时候查询条件可能是不确定的,查询条件可能有多条也可能没有,这时候就需要用到动态的sql语句拼接功能. 一.if.where.sql标签的使用 需求:在一些高级查询中,查询条件存在的个数 ...
- 【WP】攻防世界-杂项-Misc
长期更新一波 攻防世界 的杂项题解 这东西主要靠积累吧 攻防世界:https://adworld.xctf.org.cn 因为攻防世界的题目顺序经常变化,我也不改序号了,顺着之前写的位置往下写,推荐使 ...