Linux部署nginx

Linux部署nginx

  • 什么是web服务
  • web服务器软件
  • 部署nginx
  • 平滑增加nginx模块
  • nginx的命令
  • nginx配置文件
  • 部署超级玛丽和象棋

 

一、什么是web服务

  web就是B/S架构

 

二、web服务器软件

  1.apache网络模型

    select

    poll

    epoll

  2.nginx

    官网:https://nginx.org/

    软件:https://nginx.org/download/

 

三、部署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模块

增加模块必须重新编译。
[root@web01 ~]# tar -xf nginx-1.20.2.tar.gz
[root@web01 ~]# cd nginx-1.20.2
[root@web01 nginx-1.20.2]#./configure  --with-http_ssl_module
[root@web01 nginx-1.20.2]#make 
[root@web01 nginx-1.20.2]#make install 

 

五、nginx的命令

1. -v : 打印版本号
[root@web01 ~]# nginx -v
nginx version: nginx/1.20.2

2. -V : 打印版本号和配置项
[root@web01 ~]# nginx -V
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx 

3. -t : 检查配置文件
[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

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;'

 

六、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)上传代码
    将代码上传至 /opt/Super_Mario

2)编辑配置文件
[root@web01 conf.d]# vim /etc/nginx/conf.d/game.conf 
server {
    listen 80;
    server_name game.test.com;
    location / {
        root /opt/Super_Mario;
        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

 

推荐这些文章:

nginx学习(三)-配置文件nginx.conf结构

主要配置规则

主要分为指令和指令块
指令 worker_processes 2; 以分号结尾,空格或者Tab分割
指令块 event{
worker_connection 2048;
} 以大括号

user nobody; 表示 worker进程执行的用户,主进程master是root用户
worker_processes 2; 表示work进程数量。一般为n(cpu核心数)或者n-1
error_log logs/error.log debug; 错误日志位置. 默认的话是 configure 编译时指定路径
日志级别分为 debug info notice warn error cr...

4.nginx.conf配置文件

Nginx配置介绍

一个http下面有多个server,一个server下面可以有多个location

main # 全局配置,对全局生效
├── events # 配置影响 Nginx 服务器或与用户的网络连接
├── http # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
│ ├── upstream # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
│ ├── server # 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
│ ├── server
│ │ ├── location #...

Docker 安装nginx并挂载目录

最近在弄青龙面板,用ginx弄下域名,简单记录下
先拉取nginx镜像

docker pull nginx

2、查看是否拉取成功

docker images

3、使用命令在源主机上新建文件夹

mkdir -p nginx/{conf,html,log}

4、启动临时nginx

docker run -d --name nginx_test nginx

5、拷贝需要挂载的文件

docker cp nginx_test:/etc/nginx/conf.d /root/nginx/conf

docker cp nginx_test:/etc/nginx/nginx.conf...

nginx中root和alias的区别

 
结论:1 alias是一个目录别名的定义,root则是最上层目录的定义。使用root时,会到root + location 寻找资源;使用alias时,会到alias后定义的目录中找资源;2 alias后面必须要用“/”结束,否则会找不到文件的。而root则可有可无;

 
 

 

...

openresty nginx http状态码

上下文使用Lua时序方法init_by_lua*, set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua*, ngx.timer., balancer_by_lua, ssl_certificate_by_lua*, ssl_session_fetch_by_lua*, ssl_session_store_by_lua* value = ngx.HTTP_CONTINUE (100) (first ad...

ubuntu18.04 安装 nginx

1.root执行安装

sudo apt-get install nginx

 
2.查看nginx版本

nginx -v

 
3.启动/停止nginx

service nginx start
service nginx stop

 
4.nginx文件/目录

# 主程序
/usr/sbin/nginx
# 存放配置文件
/etc/nginx
# 存放静态文件
/usr/share/nginx
# 存放日志
/var/log/nginx

 

...

nginx重新整理——————分析log数据[六]

前言
简单介绍一下goaccess。
正文
安装:
yum install GeoIP GeoIP-devel GeoIP-data
yum install libncursesw5-dev ncurses-libs ncurses-devel

然后:
$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz
$ tar -xzvf goaccess-1.2.tar.gz
$ cd goaccess-1.2/
$ ./configure --enable-utf8 --enable-geoip=legacy
$ make
# make instal...

主机无法访问 VMware 里的 nginx 站点

[root@localhost html]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 
[root@localhost html]# /etc/init.d/iptables save 
[root@localhost html]# /etc/init.d/iptables restart
 
补充资料:https://blog.csdn.net/nainaiqiuwencun/article/details/80697388

...

Nginx命令

nginx #启动
nginx -s quit #退出
nginx -s stop #强制关闭
nginx -s reload #重新加载配置文件,相当于在线重启,但服务不会中断
nginx -t #验证配置文件
nginx -c "配置文件路径" #使用配置文件
nginx -h #使用帮助

 

...

已安装的nginx增加模块

1.在解压包中执行:
./configure \
--prefix=/kht/nginx \
--add-module=/kht/nginx-rtmp-module-master
2.执行make
3.备份原来的安装后sbin目录下的nginx可执行文件
4.将解压包内的objs下的nginx复制到安装后的nginx的sbin目录下
cp /kht/nginx-1.21.0/objs/nginx /kht/test1/sbin -r
5.在安装后的nginx的sbin执行./nginx -V

...

文章标题:Linux部署nginx
文章链接:https://www.dianjilingqu.com/4351.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>