• 浅聊一下Nginx


    目录

    Nginx的下载与安装

    去Nginx官网安装:nginx news

    直接进入下载页面进行安装

    直接安装:

    在服务器上使用命令对nginx的安装过程

    Nginx命令

    Nginx配置文件结构

    Nginx配置文件(conf/nginx.conf)正题分为三个部分:

    Nginx配置文件(有解析):

    Nginx具体应用


    Nginx的下载与安装

    去Nginx官网安装:nginx news

     点击download

    进入到这个页面 也就是:

    直接进入下载页面进行安装

        nginx: download

    直接安装:

    以1.16.1版本为例:

    https://nginx.org/download/nginx-1.16.1.tar.gz

    在服务器上使用命令对nginx的安装过程

    1.安装依赖包

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

    1.下载Nginx安装包

    wget https://nginx.org/download/nginx-1.16.1.tar.gz

     3.解压

    tar -zxvf nginx-1.16.1.tar.gz

    4.

    cd nginx-1.16.1

    5.

    ./configure --prefix=/usr/local/nginx

    6.

    make && make install

    Nginx目录结构

     重点目录/文件:

    • conf/nginx.conf   nginx配置文件
    • html    存放静态文件(html,css,js等)
    • logs  日志目录,存放日志文件
    • sbin/nginx   二进制文件,用于启动,停止ngnix服务

    在目录下展示树的结构

    需要先安装

    yum install tree

     展示效果:

    Nginx命令

     查看版本(这个需要进入nginx目录下sbin下才可以执行):

    ./nginx -v

    换一个命令:

    nginx -version

     

     有一点哇,不要在字目录文件特别多的目录下执行tree命令哇,笔者执行了一下,呜呜呜呜。

     进入你的nginx的sbin目录下

    ./nginx -v

    检查配置文件正确性

    在启动nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有误,命令如下

    ./nginx -t

    启动nginx服务

    ./nginx

    停止nginx服务

    ./nginx -s stop

    启动完成后可以查看ngnix进程 

    ps ef|grep nginx

    查看进程pid

    cat nginx.pid

    当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件

    ./nginx -s reload

    Nginx配置文件结构

    Nginx配置文件(conf/nginx.conf)正题分为三个部分:

    • 全局块                和Nginx运行相关的全局配置
    • events块             和网络连接相关的配置
    • http块                  代理,缓存,日志记录,虚拟主机配置

    Nginx配置文件(有解析):

    1. #全局块
    2. user www www;
    3. worker_processes auto;
    4. error_log /www/wwwlogs/nginx_error.log crit;
    5. pid /www/server/nginx/logs/nginx.pid;
    6. worker_rlimit_nofile 51200;
    7. #events块
    8. events
    9. {
    10. use epoll;
    11. worker_connections 51200;
    12. multi_accept on;
    13. }
    14. #http块(主要配置http块)
    15. http
    16. {
    17. #http全局块
    18. include mime.types;
    19. #include luawaf.conf;
    20. include proxy.conf;
    21. default_type application/octet-stream;
    22. server_names_hash_bucket_size 512;
    23. client_header_buffer_size 32k;
    24. large_client_header_buffers 4 32k;
    25. client_max_body_size 50m;
    26. sendfile on;
    27. tcp_nopush on;
    28. keepalive_timeout 60;
    29. tcp_nodelay on;
    30. fastcgi_connect_timeout 300;
    31. fastcgi_send_timeout 300;
    32. fastcgi_read_timeout 300;
    33. fastcgi_buffer_size 64k;
    34. fastcgi_buffers 4 64k;
    35. fastcgi_busy_buffers_size 128k;
    36. fastcgi_temp_file_write_size 256k;
    37. fastcgi_intercept_errors on;
    38. gzip on;
    39. gzip_min_length 1k;
    40. gzip_buffers 4 16k;
    41. gzip_http_version 1.1;
    42. gzip_comp_level 2;
    43. gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
    44. gzip_vary on;
    45. gzip_proxied expired no-cache no-store private auth;
    46. gzip_disable "MSIE [1-6]\.";
    47. limit_conn_zone $binary_remote_addr zone=perip:10m;
    48. limit_conn_zone $server_name zone=perserver:10m;
    49. server_tokens off;
    50. access_log off;
    51. #http中的server块
    52. server
    53. {
    54. #server全局块
    55. #监听端口
    56. listen 888;
    57. #域名 没有域名的话就填localhost
    58. server_name phpmyadmin;
    59. index index.html index.htm index.php;
    60. root /www/server/phpmyadmin;
    61. location ~ /tmp/ {
    62. return 403;
    63. }
    64. #error_page 404 /404.html;
    65. include enable-php.conf;
    66. #location
    67. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    68. {
    69. expires 30d;
    70. }
    71. location ~ .*\.(js|css)?$
    72. {
    73. expires 12h;
    74. }
    75. location ~ /\.
    76. {
    77. deny all;
    78. }
    79. access_log /www/wwwlogs/access.log;
    80. }
    81. include /www/server/panel/vhost/nginx/*.conf;
    82. }

    Nginx具体应用

    正向代理
    是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
    正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
    正向代理一般是在客户端设置代理服务器,通过代理服务器转发请求,最终访问到目标服务器。

    反向代理
    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。
    用户不需要知道目标服务器的地址,也无须在用户端作任何设定。

    正向代理和反向代理的区别:

    正向代理是设置在客户端的,并且客户端也知道代理服务器的存在,反向代理是用户直接访问代理服务器,反向代理服务器转发请求从目标服务器获取资源返回给用户,客户端并不知道反向代理服务器的存在,

    配置反向代理:

    1. server {
    2. listen 888;
    3. server_name localhost;
    4. location / {
    5. proxy_pass http://XXX.XX.XXX.XXX:8080; #反向代理配置,将请求转发到指定服务
    6. }
    7. }

    负载均衡

    早期的网站流量和业务功能都比较简单,单台服务器就可以满足基本需求,但是随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障出现。

    • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据。
    • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理。

    负载均衡也是基于反向代理功能实现的,只是它后面是多台服务器,根据算法将用户请求分发到其中一台服务器中

    配置负载均衡

    1. upstream targetserver{
    2. server 192.168.123.122:8080;
    3. server 192.168.324.122:8989;
    4. }
    5. server {
    6. listen 8080;
    7. server_name localhost;
    8. location / {
    9. proxy_pass http://targetserver;
    10. }
    11. }

    请求8080端口,请求就会被分发到两台服务器中的一台中去。

    在被分发的服务器ip地址后加上weight=多少;代表着权重,即此服务器会被分发到的几率。

    负载均衡策略:

    轮询                                        默认方式

    weight                                     权重方式

    ip_hash                                   依据ip分配方式

    least_conn                               依据最少连接方式

    url_hash                                   依据url分配方式

    fair                                            依据响应时间方式

    推荐博客:瑞吉外卖笔记——第09讲Nginx_萧篱衣的博客-CSDN博客

    参考:项目优化Day3-01-本章内容介绍_哔哩哔哩_bilibili 

  • 相关阅读:
    DeSci:去中心化科学是Web3.0的新趋势?
    JavaScript对象
    C++ 函数模板
    mvn打包成war包或可执行jar包
    清理docker 占用空间,volume挂载过大,清除镜像,容器,挂载数据
    基于Java毕业设计薪酬福利管理信息系统源码+系统+mysql+lw文档+部署软件
    盘点52个Python各行各业管理系统源码Python爱好者不容错过
    【Python_PySide2学习笔记(十八)】勾选按钮QCheckBox类的基本用法
    koa框架(一)
    电脑病毒感染C卷(Java&&Python&&C++&&Node.js&&C语言)
  • 原文地址:https://blog.csdn.net/Hubery_sky/article/details/127716319