• Nginx网站服务(安装nginx,nginx访问配置)


    目录

    一,nginx概述

    1,什么是nginx?

    2,Nginx应用场景

    3.,Nginx的httpd七层代理和四层代理

    二,Nginx和Apache的区别

    三,手工编译安装nginx服务

    1,关闭防火墙和安全机制

     2,安装环境依赖包,并且创建程序用户

     3,编译安装nginx

      4,路径优化

      5,启动,停止nginx服务

     6,添加nginx系统服务

      七,通过systemctl命令能否正常启动,停止,重启nginx服务

     ​编辑8, 进入nginx访问界面

     四,认识nginx服务的主配置文件

    1,全局配置

    2,l/o事件配置

     3,http模块

     4,server模块/location模块

     5,日志格式设定

    五,nginx服务配置案例

    1,基于授权的访问权限

     六,location设置

    七,虚拟主机

    1,基于域名的虚拟主机

     2,基于端口的虚拟主机(相同ip但是不同端口)

     3,,基于不同ip访问不同的域名


    一,nginx概述

    1,什么是nginx?

    • 一款高性能,轻量级web服务软件
    • 稳定性高,系统资源消耗低
    • 对HTTP并发连接的处理能力高(单台吴利群可支持30000-50000个并发请求)

    2,Nginx应用场景

    • 静态服务器
    • 动态服务
    • 反向代理,负载均衡
    • 缓存服务

    反向代理解释:是指用户不需要知道目标服务器的地址,也不需要在用户端做任何设定,可以直接通过访问反向代理服务器来获得目标服务器的资源,反向代理提高了内部服务器的安全,加快了对内部服务器的访问速度。

    优点

    ①提高了内部服务器的安全

    ②加快了读i内部服务器的访问速度

    ③节约了有限的IP资源

    3.,Nginx的httpd七层代理和四层代理

    nginx的http七层代理,nginx工作在osl七层模型的应用层。由于其可以解析http协议,我看可以根据url进行请求的分发,具有很大的灵活性,但是协议的解析存在性能的消耗,为了能获取更高的代理性能。

    nginx支持了四层代理,即传输层,tcp/udp层,没有协议解析,就是简单的tcp/udp转发,代理性能突飞猛进。

    二,Nginx和Apache的区别

    1. Nginx是一个基于事件的Web服务器,Apache是一个基于流程的服务器。
    2. Nginx所有请求都是由一个线程处理,Apache单个线程处理单个请求。
    3. Nginx在内存消耗和连接方面更好,Apache在内存消耗和连接方便一般。
    4. Nginx的性能和伸缩性不依赖于硬件,Apache依赖于CPU和内存等硬件。
    5. Nginx支持热部署,Apache不支持热部署。
    6. Nginx对于静态文件处理具有高效率,Apache相对一般。
    7. Nginx在反向代理场景具有明显优势,Apache相对一般

    三,手工编译安装nginx服务

    1,关闭防火墙和安全机制

     2,安装环境依赖包,并且创建程序用户

    Nginx 的配置及运行需要 pcre、zlib 等软件包的支持,因此应预先安装这些软件的开发 包(devel),以便提供相应的库和头文件,确保 Nginx 的安装顺利完成

     3,编译安装nginx

    1. cd nginx-1.12.0/
    2. ./configure \
    3. --prefix=/usr/local/nginx \ #指定nginx的安装路径
    4. --user=nginx \ #指定用户名
    5. --group=nginx \ #指定组名
    6. --with-http_stub_status_module #启用 http_stub_status_module 模块以支持状态统计
    7. make && make install
    8. ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令

      4,路径优化

    为了使 Nginx 服务器的运行更加方便,可以为主程序 nginx 创建链接文件,以便管理员 直接执行“nginx”命令就可以调用 Nginx 的主程序(让系统可以识别

      5,启动,停止nginx服务

    1. nginx -t 检查配置文件是否配置正确
    2. nginx 启动
    3. 停止nginx服务(控制手段)
    4. [root@kya conf]#cat /usr/local/nginx/logs/nginx.pid
    5. 8924
    6. kill -3 pid号
    7. kill -s quit pid号
    8. killall -3 nginx
    9. killall -s qult nginx
    10. 重载
    11. 优雅的杀死,停止 kill systemctl stop
    12. 暴力终止 rm -rf nginx.pid 强行关机断电

     6,添加nginx系统服务

    1. ##配置参数解释##
    2. [Unit]
    3. Description=nginx ####描述
    4. After=network.target ####描述服务类别
    5. [Service]
    6. Type=forking ###后台运行形式
    7. PIDFile=/usr/local/nginx/logs/nginx.pid ###PID文件位置
    8. ExecStart=/usr/local/nginx/sbin/nginx ###启动服务
    9. ExecReload=/usr/bin/kill -s HUP $MAINPID ###根据PID重载配置
    10. ExecStop=/usr/bin/kill -s QUIT $MAINPID ###根据PID终止进程
    11. PrivateTmp=true
    12. [Install]
    13. WantedBy=multi-user.target

     

     

      七,通过systemctl命令能否正常启动,停止,重启nginx服务

     8, 进入nginx访问界面

     四,认识nginx服务的主配置文件

    1,全局配置

    1. #user nobody; #运行用户,若编译时未指定则默认为 nobody
    2. worker_processes 4; #工作进程数量,可配置成服务器内核数 * 2,如果网站访问量不大,一般设为1就够用了
    3. #error_log logs/error.log; #错误日志文件的位置
    4. #pid logs/nginx.pid; #PID 文件的位置

    2,l/o事件配置

    1. evevts{
    2. worker_connections 1024
    3. }
    4. 表示每个worker可以创建多少个连接,默认为1024

     3,http模块

    1. http {
    2. ##文件扩展名与文件类型映射表
    3. include mime.types;
    4. ##默认文件类型
    5. default_type application/octet-stream;
    6. ##日志格式设定
    7. #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    8. # '$status $body_bytes_sent "$http_referer" '
    9. # '"$http_user_agent" "$http_x_forwarded_for"';
    10. ##访问日志位置
    11. #access_log logs/access.log main;
    12. ##支持文件发送(下载)
    13. sendfile on;
    14. ##此选项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    15. #tcp_nopush on;
    16. ##连接保持超时时间,单位是秒
    17. #keepalive_timeout 0;
    18. keepalive_timeout 65;
    19. ##gzip模块设置,设置是否开启gzip压缩输出
    20. #gzip on;
    21. ##Web 服务的监听配置
    22. server {
    23. ##监听地址及端口
    24. listen 80;
    25. ##站点域名,可以有多个,用空格隔开
    26. server_name www.kgc.com;
    27. ##网页的默认字符集
    28. charset utf-8;
    29. ##根目录配置
    30. location / {
    31. ##网站根目录的位置/usr/local/nginx/html
    32. root html;
    33. ##默认首页文件名
    34. index index.html index.php;
    35. }
    36. ##内部错误的反馈页面
    37. error_page 500 502 503 504 /50x.html;
    38. ##错误页面配置
    39. location = /50x.html {
    40. root html;
    41. }
    42. }
    43. }

     4,server模块/location模块

     

     5,日志格式设定

    1. $remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
    2. $remote_user:用来记录客户端用户名称;
    3. $time_local: 用来记录访问时间与时区;
    4. $request: 用来记录请求的url与http协议;
    5. $status: 用来记录请求状态;成功是200
    6. $body_bytes_sent :记录发送给客户端文件主体内容大小;
    7. $http_referer:用来记录从哪个页面链接访问过来的;
    8. $http_user_agent:记录客户浏览器的相关信息;
    9. 通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
    10. location常见配置指令,root、alias、proxy_pass
    11. root(根路径配置):root /var/www/html
    12. 请求www.kgc.com/test/1.html,会返回文件/var/www/html/test/1.html
    13. alias(别名配置):alias /var/www/html
    14. 请求www.kgc.com/test/1.html,会返回文件/var/www/html/1.html
    15. proxy_pass(反向代理配置)

    五,nginx服务配置案例

    1,基于授权的访问权限

    htppasswd:htpasswd是一个用于目录访问权限认证的一个工具

    -c 创建密码文件,如果文件存在,那么内容被清空重写

    生产用户密码认证文件

    yum -y install httpd-tools

    [root@kya conf]#htpasswd -c /usr/local/nginx/htpasswd.db cxk
    New password: 
    Re-type new password: 
    Adding password for user cxk
    添加nginx管理给与400权限
    [root@kya nginx]#chown nginx  /usr/local/nginx/htpasswd.db 
    [root@kya nginx]#chmod 400 /usr/local/nginx/htpasswd.db 
    2,修改主配置文件相对应的目录
    ,添加认证配置项
    auth_basic "secret";
                auth_basic_user_file /usr/local/nginx/htpasswd.db;
                
      重启服务,进行访问

    修改配置文件

     

     六,location设置

    我们在不同的location位置可以做不同的功能限制,比如我们可以让用户直接访问首页但不允许用户直接访问状态统计模块,如何配置

    基于客户端的访问控制

    1,访问控制规则如下

    deny ip/ip/段,拒绝某个ip或者ip段的客户端访问

    allow ip/ip段,允许某个ip或ip段的客户端访问

          location /{
                root  html;
                index  index.html index.htm;
                deny 192.168.135.111;
                allow all;     

    111无法访问112,因为添加了禁止访问

    七,虚拟主机

    nginx支持的虚拟主机

    1,基于域名的虚拟主机

    2,基于ip的虚拟主机

    3,基于端口的虚拟主机

    通过server{

    来实现不同的虚拟主机

    }

    1,基于域名的虚拟主机

    添加域名解析

    echo "192.168.135.113 www.kya.com  www/cxk.com" >> /etc/hosts

     

     这边虚拟站点网页文档

    1. [root@kya conf]#mkdir -p /var/www/html/jiesi
    2. [root@kya conf]#mkdir -p /var/www/html/zhaoxing
    3. [root@kya conf]#cd /var/www/html/
    4. [root@kya html]#ll
    5. 总用量 0
    6. drwxr-xr-x. 2 root root 6 812 14:56 jiesi
    7. drwxr-xr-x. 2 root root 6 812 14:56 zhaoxing
    8. [root@kya zhaoxing]#cat index.html
    9. your words cut deeper then a knife
    10. 你一字一句,像是插进我身体的匕首
    11. [root@kya zhaoxing]#cd ..
    12. [root@kya html]#cd jiesi/
    13. [root@kya jiesi]#cat index.html
    14. but on one,s ever left me quite sore
    15. 但是没有人能让我伤痛欲绝
    16. [root@kya jiesi]#

     

     server文件配置

    1. [root@kya html]#mkdir 80
    2. [root@kya html]#mkdir 8080
    3. [root@kya html]#cd 80
    4. [root@kya 80]#ls
    5. [root@kya 80]#vim index.html
    6. [root@kya 80]#ll
    7. 总用量 4
    8. -rw-r--r--. 1 root root 11 812 16:26 index.html

     多刷新几次,查看日志文件

     2,基于端口的虚拟主机(相同ip但是不同端口)

    创建8080端口的网页文件

    1. [root@kya html]#mkdir 80
    2. [root@kya html]#mkdir 8080
    3. [root@kya html]#cd 80
    4. [root@kya 80]#ls
    5. [root@kya 80]#vim index.html
    6. [root@kya 80]#ll
    7. 总用量 4
    8. -rw-r--r--. 1 root root 11 812 16:26 index.html

    进入配置文件,复制www.cxk.com的配置,修改端口号

     日志文件位置

     3,,基于不同ip访问不同的域名

    1,添加192.168.135.122的映射

    1. cd/var/www/html
    2. [root@kya www]#cd html/
    3. [root@kya html]#ll
    4. 总用量 0
    5. drwxr-xr-x. 2 root root 24 812 16:26 80
    6. drwxr-xr-x. 2 root root 24 812 16:26 8080
    7. drwxr-xr-x. 2 root root 24 812 15:01 jiesi
    8. drwxr-xr-x. 2 root root 24 812 15:02 zhaoxing
    9. [root@kya html]#mkdir 122xck
    10. [root@kya html]#cd 122xck/
    11. [root@kya 122xck]#ll
    12. 总用量 0
    13. [root@kya 122xck]#vim index.html
    14. 创建一个,122ip的index.html文件
    15. [root@kya 122xck]#cat index.html
    16. ip 122
    17. www.xck.com
    18. time is a valuable thing
    19. 时间是宝贵的

    2,添加122的虚拟网卡

    1. [root@kya 122xck]#ifconfig ens33:0 192.168.135.122 netmask 255.255.255.0
    2. [root@kya 122xck]#ifconfig
    3. 如果要固定这张网卡,需要到网卡配置那边创建一个

    3,进入nginx,server下修改配置文件

    4,访问192.168.135.112

  • 相关阅读:
    python使用MQTT协议详解
    Graph Self-Supervised Learning: A Survey
    WorkPlus局域网即时通信软件,打造高效协作的智能选择
    ESP32-添加多目录的自定义组件
    易观千帆 | 2023年4月证券APP月活跃用户规模盘点
    茶叶的保健作用与有益成分
    web网页设计期末课程大作业__公司官网 (曼谷科技 1页)带psd文件
    机械硬盘HDD
    Java特性之设计模式【组合模式】
    Java 双门双向门禁控制板实时监控源码
  • 原文地址:https://blog.csdn.net/m0_54594153/article/details/126584355