Linux基础之Nginx篇(一)

一.web服务

什么是web服务

  Web服务(Web service)是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。web就是b/s架构

二.web服务器软件

1.Apache

  Apache是世界各地使用的Web服务器软件(HTTP服务器),是构建服务器需要Web服务器软件,我们还可以理解成Web服务器和流行服务器软件的机制。

网络模型

>>>select

>>>poll

>>>epoll

2.Nginx

  Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。 Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,并在一个BSD-like协议下发行。

  官网:https://nginx.org/

三.部署Nginx

复制代码
1、yum安装
    [root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
    [root@web01 ~]# yum install nginx -y
    [root@web01 ~]# systemctl stop httpd
    [root@web01 ~]# systemctl start nginx

2、二进制安装

3、编译安装
    [root@web01 ~]#  wget https://nginx.org/download/nginx-1.20.2.tar.gz
    [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz
    [root@web01 nginx-1.20.2]# ./configure
    [root@web01 nginx-1.20.2]# make
    [root@web01 nginx-1.20.2]# make install
复制代码

四.平滑增加Nginx模块

复制代码
1 增加模块必须重新编译。
2 [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz
3 [root@web01 ~]# cd nginx-1.20.2
4 [root@web01 nginx-1.20.2]#./configure  --with-http_ssl_module
5 [root@web01 nginx-1.20.2]#make 
6 [root@web01 nginx-1.20.2]#make install 
复制代码

五.Nginx的命令

复制代码
 1 1、-v : 打印版本号
 2 [root@web01 ~]# nginx -v
 3 nginx version: nginx/1.20.2
 4 
 5 2、-V : 打印版本号和配置项
 6 [root@web01 ~]# nginx -V
 7 nginx version: nginx/1.20.2
 8 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
 9 built with OpenSSL 1.0.2k-fips  26 Jan 2017
10 TLS SNI support enabled
11 configure arguments: --prefix=/etc/nginx 
12 
13 3、-t : 检查配置文件
14 [root@web01 ~]# nginx -t
15 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
16 nginx: configuration file /etc/nginx/nginx.conf test is successful
17 
18 4、-T : 测试配置文件并启动
19 
20 5、-q :打印错误日志
21 
22 6、-s : 操作进程
23     stop    :停止
24     quit    :退出
25     reopen    :重启
26     reload    :重载
27 7、-p : 指定nginx的工作目录
28 8、-e : 指定错误日志路径
29 9、-c : 指定配置文件的路径
30 10、-g : 设置一个全局的Nginx配置项
31 [root@web01 ~]# nginx -g 'daemon off;'
复制代码

六.Nginx配置文件

复制代码
全局配置和模块配置

1、全局配置
    1、user : 指定Nginx的启动用户
    2、worker_processes : 定义Nginx的worker进程数
        auto === CPU数量
    3、error_log : 错误日志路径
    4、pid : pid的存放文件路径
    5、events : 模块配置
        5.1、worker_connections :每一个worker进程最多同时接入多少个请求
        5.2、use : 指定Nginx的网络模型
    6、http : web服务的模块
        6.1、include : 加载外部的配置项
        6.2、default_type : 如果找不到文件的类型,则按照指定默认类型处理
        6.3、log_format : 定义日志格式
            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 ;
        6.4、sendfile : 高效读取文件
        6.5、keepalive_timeout : 长连接保持连接的
            HTTP 1.0 短链接
            HTTP 1.1 长连接
        6.6、server : 网址模块
            6.6.1、listen : 监听的端口
            6.6.2、server_name : 定义域名
            6.6.3、location : 访问路径
                6.6.3.1、root : 指定网址路径
                6.6.3.2、index : 指定网址的索引文件
复制代码

七.搭建网页小游戏

复制代码
1、上传代码

2、编辑配置文件
[root@web01 conf.d]# vim /etc/nginx/conf.d/game.conf 
server {
    listen 80;
    server_name game.test.com;
    location / {
        root /opt/Super_Marie;
        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、域名解析
C:\Windows\System32\drivers\etc\hosts
172.16.1.7 game.test.com
复制代码

 

posted @   bug俱乐部  阅读(59)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示