yayxs / blog

My official blog, not just technology
0 stars 0 forks source link

前端了解一下常用Nginx命令及配置 #4

Open yayxs opened 1 year ago

yayxs commented 1 year ago

为什么学 nginx

关于前端的话,我们与服务器打交道的机会也是很少的,一般企业公司 都会有专门的运维同学 各司其职。

那是不是我们就不需要关注Linux 常用的命令,或者与我无关

表情包

用到的场景

那前端切图仔在实际的开发中有没有机会去玩玩运维相关的玩意,是有的

关键词

nginx 做些什么

nginx 是流行的服务器 静态资源的托管 + 动态资源的反向代理 nginx 服务器来为多个域名和端口的提供服务

静态文件

/usr/share/nginx/html/index.html

# 把nginx 中的html文件复制出来
docker cp nginx1:/usr/share/nginx/html ./nginx-html

主配置文件


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

其中include /etc/nginx/conf.d/*.conf; configuration directory 配置目录

以下是所有的路由

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

有关路由的语法如下:

^~ 可以提高优先级

location ^~ /444 {
    default_type text/plain;
    return 200 'xxxx';
}

常用命令及操作

安装 Nginx 服务器

当然,在不同的场景及环境下,安装的命令大体都是类似的操作,接下来就拿一个举例子

检查版本

[root@VM_0_3_centos umi-nest]# nginx -v
nginx version: nginx/1.18.0
[root@VM_0_3_centos umi-nest]#

其中,这个就是咱们的版本 nginx version: nginx/1.18.0

检查配置语法是否合法

[root@VM_0_3_centos umi-nest]# nginx -t
nginx: [emerg] invalid number of arguments in "root" directive in /www/server/panel/vhost/nginx/umi_nest.conf:6
nginx: configuration file /www/server/nginx/conf/nginx.conf test failed

上文,说明我们的配置是有问题的不是吗 failed 至于为什么错误,当然是咱们的配置是有点问题,其实咱们只需要了解基本的配置就像

启动 Nginx 服务

说明咱们的nginx 是正在启动

重启 Nginx 服务

查看 Nginx 服务状态

重新加载 Nginx 服务

停止 Nginx 服务

命令示例

总结

如若权限不够的话,请sudo ,例如 sudo nginx -s reload

代理

例如地址栏访问:http://localhost:3000/api

location ^~ /api {
    proxy_pass http://192.168.1.6:3000;
}

负载均衡

我们可以通过通过简单的配置实现 小小的负载均衡,我们可以举个例子

upstream tomcats{
    server 192.168.25.148:8080 weight=2;
    server 192.168.25.148:8081;
}

server {
    listen       80;
    server_name  tomcat.test.com;
    location / {
        proxy_pass   http://tomcats;
        index  index.html index.htm;
    }
}

只需要在 upstream 的 server 后面添加一个 weight 即可代表权重。权重越高,分配请求的数量就越多。默认权重是 1。也就是当请求过来的时候,会有很多的实例来 均衡

命令合集

命令 作用 其他
nginx -s reload 重新加载配置

扩展