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.下载源码包

bash 复制代码
wget https://nginx.org/download/nginx-1.26.3.tar.gz
tar -zxf nginx-1.26.3.tar.gz -C /usr/src

2.安装依赖组件

bash 复制代码
yum -y install pcre-devel zlib-devel

3.创建nginx程序用户

bash 复制代码
useradd -M -s /sbin/nologin nginx

4.编译安装

bash 复制代码
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.优化命令路径

bash 复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx -v

6.添加systemd服务文件

bash 复制代码
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
bash 复制代码
###重新加载服务文件
systemctl daemon-reload

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

bash 复制代码
systemctl enable nginx --now
systemctl status nginx

8.验证:

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

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

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

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

1.搭建MySQL数据库

(1)安装数据库

bash 复制代码
yum -y install mariadb mariadb-server

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

bash 复制代码
systemctl enable mariadb --now

(3)设置账号密码

bash 复制代码
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 处理图片的扩展,如生成图片、裁剪图片、缩放图片等

bash 复制代码
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)修改配置文件

bash 复制代码
vim /etc/php-fpm.d/www.conf
 24 user = nginx
 26 group = nginx
#取消注释,开启PHP状态页面,并改名为/php_status
240 pm.status_path = /php_status

(3)更改php时区

bash 复制代码
vim /etc/php.ini
 923 date.timezone = "Asia/shanghai

(4)启动php服务

bash 复制代码
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网页目录

bash 复制代码
unzip v6.4.0.zip
mv v6.4.0.zip/. /usr/local/nginx/html

(3)访问测试:

http://192.168.100.101

相关推荐
_下雨天.3 小时前
LVS负载均衡
服务器·负载均衡·lvs
小成202303202656 小时前
Linux高级02
linux·开发语言
mounter6256 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==6 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长7 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5387 小时前
Linux环境变量
linux·运维·服务器
pluvium277 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员7 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
kebeiovo7 小时前
atomic原子操作实现无锁队列
服务器·c++
赛博云推-Twitter热门霸屏工具8 小时前
Twitter运营完整流程:从0到引流获客全流程拆解(2026)
运维·安全·自动化·媒体·twitter