当前位置: 首页 > news >正文

Linux Nginx网站服务【完整版】

Web服务:Apache  nginx   tomcat

   平常所浏览的网页,都是通过网页语言编写出来的,要想让其他人访问到自己编写的网页,需要将网页放到服务器上(Apache|nginx|tomcat)

网页:

静态网页:  .html   .htm结尾  

动态网页: .jsp   .php结尾

一、Nginx介绍

    2006年由俄罗斯lgor sysoev编写,全称为engine X, 缩写为nginx,官方站点为http://nginx.org,2013年发出企业版本Nginx Plus,二次发行版本:Tengine, OpenResy等

nginx官网https://nginx.org

Apache:2W   nginx:5W

Nginx是⼀个开源且⾼性能、可靠的HTTP中间件、代理服务。

开源: 直接获取源代码

⾼性能: ⽀持海量并发

常见的HTTP服务

1.HTTPD -> Apache基⾦会    三种工作模式:prefork   worker  event

2.IIS -> 微软

3.GWS -> Google   Brog    kubernets

4.openrestry

5.tengine -> 淘宝基于Nginx二次开发(开源)

6.nginx

Nginx特性:

    1 模块化设计,较好的扩展性,早期不支持模块的动态装卸载

    2 高可靠性,基于master/worker模式

      Master:负责启动服务,分析配置文件,负责启动子进程和worker进程

      Worke:真正响应用户请求进程

    3 支持热部署(平滑迁移):不停机更新配置文件,更换日志文件,更新服务器程序版本

    4 内存消耗低: 10K个keep-alive连接模式下的非活动连接仅消耗2.5M内存

    5 支持event-driven事件驱动模型,aio驱动机制,mmap内存映射机制

nginx基本功能:

    1 静态资源的web服务器,自身只能简单的接收和响应http

    2 http协议的反向代理服务器

    3 pop3,smtp imap4等邮件协议的反向代理

    4 能缓存打开的文件(元数据缓存:文件的描述符等信息),能加快文件的打开速度

    5 支持FastCGI(php-fpm),UWSGI(python web framwork框架)等协议机制,实现代理后端应用程序交互

    6 模块化(非DSO机制),可扩展性

7 支持过滤器,例如ZIP,SSI(服务端包含)

    8 支持SSL加密机制

二、Nginx安装部署

方法一:yum安装(需联网)

1.保证拥有epel源

2.直接安装nginx服务

yum -y install nginx

3.启动并设置开机自启

systemctl enable nginx --now

4.访问测试

方法二:源码部署

1.下载源码包

wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar -zxf nginx-1.26.3.tar.gz -C /usr/src

2.安装依赖组件

yum -y install pcre-devel zlib-devel

3.创建nginx程序用户

useradd -M -s /sbin/nologin nginx

4.编译安装

cd /usr/src/nginx-1.26.3
##生成makefile./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install

 解释:

--prefix=/usr/local/nginx ##指定服务安装目录

--user=nginx ##指定用户

--group=nginx ##指定用户组

--with-http_stub_status_module ##支持状态统计,便于查看服务器的连接信息

5.优化命令路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx -v

6.添加systemd服务文件

cat <<EOF>> /usr/lib/systemd/system/nginx.service
[Unit]
Description=Nginx
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
###重新加载服务文件
systemctl daemon-reload

7.启动nginx并设置开机自启

systemctl enable nginx --now
systemctl status nginx

8.验证:

浏览器访问:http://192.168.100.101​​​​​​

三、Nginx常见配置和性能优化

四、实现类似京东电商网站系统(LNMP架构)

项目官网:ShopXO - 企业级B2C免费开源电商系统

1.搭建MySQL数据库

(1)安装数据库

yum -y install mariadb mariadb-server

(2)启动服务并设置开机自启

systemctl enable mariadb --now

(3)设置账号密码

mysql
CREATE USER 'root'@'%' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123';
FLUSH PRIVILEGES;
##创建数据库
create database shopxo;
quit

2.安装PHP

(1)安装php相关包

php 包是php代码的解释器

php-fpm 包用于管理php进程接收请求

php-mysql 包用于与MySQL数据库集成,可连接MySQL数据库并进行增删改查 php-gd包用于帮助

php-gd 处理图片的扩展,如生成图片、裁剪图片、缩放图片等

yum -y install yum-utils http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php82
yum -y install php php-fpm php-mysqlnd php-gd mariadb mariadb-server

(2)修改配置文件

vim /etc/php-fpm.d/www.conf24 user = nginx26 group = nginx
#取消注释,开启PHP状态页面,并改名为/php_status
240 pm.status_path = /php_status

(3)更改php时区

vim /etc/php.ini923 date.timezone = "Asia/shanghai

(4)启动php服务

systemctl enable php-fpm --now

3.Nginx对接php

vim /usr/local/nginx/conf/nginx.conf

#配置文件内容

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

  #支持php格式

            index  index.php index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

   #php相关注释取消

        location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

}

4.搭建商城系统

(1)下载项目源码

wget https://github.com/gongfuxiang/shopxo/archive/v6.4.0.zip

(2)解压到nginx网页目录

unzip v6.4.0.zip
mv v6.4.0.zip/. /usr/local/nginx/html

(3)访问测试:

http://192.168.100.101

相关文章:

  • 宝塔面板运行docker的jenkins
  • leetcode76
  • a-upload组件实现文件的上传——.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.txt
  • [计算机科学#6]:从锁存器到内存,计算机存储的构建与原理
  • 安装kubernetes 1.33版本
  • C++负载均衡远程调用学习之Reactor事件触发机制
  • 基于用户场景的汽车行驶工况构建:数据驱动下的能耗优化革命
  • Unity编辑器扩展之导出项目中所有Script里面的文本内容
  • SpringBoot+EasyExcel+Mybatis+H2实现导入
  • Spring Security 6
  • Android学习总结之算法篇六(数组和栈)
  • 毕业论文 | 基于C#开发的NMEA 0183协议上位机
  • 详解 MyBatis-Plus 框架中 QueryWrapper 类
  • 青少年抑郁症患者亚群结构和功能连接耦合的重构
  • Helm部署kong+konga的路由管理系统
  • el-tabs与table样式冲突导致高度失效问题解决(vue2+elementui)
  • 【STM32实物】基于STM32的RFID多卡识别语音播报系统设计
  • Windows和 macOS 上安装 `nvm` 和 Node.js 16.16.0 的详细教程。
  • Electron Forge【实战】带图片的 AI 聊天
  • Mac下安装Python3,并配置环境变量设置为默认
  • 五大光伏龙头一季度亏损超80亿元,行业冬天难言结束
  • 马克思主义理论研究教学名师系列访谈|杜玉华:马克思主义是“认识世界”和“改变世界”的思维工具
  • 狄威已任国铁集团副总经理
  • 广东省副省长刘红兵任湖南省委常委、宣传部部长
  • 神十九飞船已撤离空间站,计划于今日中午返回东风着陆场
  • 言短意长|政府食堂、停车场开放的示范效应