Nginx安装

发布时间:2023年12月25日

Nginx安装

安装方式:

1.源码编译=>Nginx (1.版本随意 2.安装复杂 3.升级繁琐 4.规范 5.便于管理)

2.epel仓库=>Nginx (1.版本较低 2.安装简单 3.配置不易读)

3.官方仓库=>Nginx (1.版本较新 2.安装简单 3.配置易读)

# web01 官方仓库安装

https://nginx.org/en/download.html 拉到最底下
https://nginx.org/en/linux_packages.html
https://nginx.org/en/linux_packages.html#RHEL-CentOS

# 先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


root@web01,172.16.1.7:~ # nginx -v
nginx version: nginx/1.22.0

# web02 epel仓库安装
直接yum install -y nginx 是走eple仓库

root@web02,172.16.1.8:~ # nginx -v
nginx version: nginx/1.20.1                 (版本较低)
公司没规定就直接安,因为快

Nginx启停

# 启动
systemctl start nginx
nginx
/usr/sbin/nginx

# nginx加入开机自启
systemctl enable nginx

# 停止
systemctl stop nginx
nginx -s stop
/usr/sbin/nginx -s stop

# 重启
systemctl restart nginx

# 重新加载
systemctl reload nginx


# 选项
-c 指定配置文件的路径
-t 检测配置文件语法问题(不检测单词拼写)
-s 启停重载 属于服务操作
-v 查看版本号
-V 检查nginx的编译参数

验证是否安装成功:浏览器访问相应服务器

Nginx主配置文件介绍

Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束。

Nginx主配置文件整体分为三块:
分别是CoreModule(核心模块),EventModule(事件驱动模块),HttpCoreModule(http内核模块)

nginx配置文件,每一行都以';'结尾
0 ? 11:45:14 root@web01,172.16.1.7:/etc/nginx # grep -Ev '^$|#' /etc/nginx/nginx.conf

## 核心层(核心模块)
user nginx;                    # nginx的启动用户        
worker_processes auto;         # nginx运行的work进程数量(建议与CPU数量一致或auto)
                                  auto:自动根据cpu的核心数来启动对应的工作进程数
error_log /var/log/nginx/error.log notice;  # nginx错误日志存放路径
pid       /var/run/nginx.pid;   # 启动后进程号存放路径

## 事件层(事件驱动模块)
events {
  worker_connections  1024;   # 每个worker进程支持的最大连接数
}

## http层 (http模块 网站配置)
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;                           // 高效文件传输
  keepalive_timeout  65;                         // 长连接超时时间
  include /etc/nginx/conf.d/*.conf;             //包含nginx其他子配置文件(网站虚拟机配置文件)
}

##(web02的nginx版本便有)
#使用Server配置网站, 每个Server{}标签对应一个独立的网站站点(所谓虚拟主机)

server {
      listen       80;                # 监听端口, 默认80
      server_name driverzeng.com;    # 提供的域名
      access_log access.log;         # 该网站的访问日志

       'location' / {                      # 控制网站访问路径
          root   /usr/share/nginx/html;   # 存放网站源代码的位置
          index index.html index.htm;    # 默认返回网站的文件
      }
  }
  ...
   # 第二个虚拟主机配置
server {
  ...
  }
# 日志格式中的参数
'$remote_addr - $remote_user [$time_local] "$request" '  

$remote_addr 远端的IP(上一访问你的IP)
$remote_user 登录的用户(网页没有登录用户则为空)
[$time_local] 时间
"$request"   请求方式 请求URL HTTP协议版本号                    

'$status $body_bytes_sent "$http_referer" '
$status 状态码
$body_bytes_sent 流量
"$http_referer" 跳转地址(从哪个网站跳转过来的)

'"$http_user_agent" "$http_x_forwarded_for"'
"$http_user_agent" 客户端信息
"$http_x_forwarded_for"   记录透传ip地址???与代理服务器相关

日志实操

# 查看日志

root@web01,172.16.1.7:~ # ll /var/log/nginx/
total 68
-rw-r----- 1 nginx adm 31262 Sep 28 11:39 access.log
-rw-r----- 1 nginx adm 33759 Sep 28 11:39 error.log


# 启动服务后,浏览器打开10.0.0.7显示nginx默认页面,刷新一下,日志便出来一条

root@web01,172.16.1.7:~ # tail -f /var/log/nginx/access.log
10.0.0.1 - - [29/Sep/2022:09:37:48 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" "-"
10.0.0.1 - - [29/Sep/2022:09:39:58 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" "-"


10.0.0.1                       远端IP,网卡
- -                           该网站不需要登录
[29/Sep/2022:09:37:48 +0800]   时间
"GET / HTTP/1.1"               请求方式 请求URI HTTP协议版本号

304 0 "-" 状态码(缓存) 流量 无跳转

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36" 客户端信息

基础配置

80 和443端口配置,ssl证书来自于阿里云免费证书

 upstream backend  {
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
                }


    server {
        listen  80;
        server_name scienceai.top;
        location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;

                }
        }

    server {
    listen 443 ssl;
    server_name scienceai.top;

    ssl on;
    ssl_certificate  /xx/xx/ssl/scienceai.top.pem;
    ssl_certificate_key /xx/xx/ssl/scienceai.top.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://backend;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
文章来源:https://blog.csdn.net/weixin_42486623/article/details/135187129
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。