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

相关推荐
领世达检测V1335290924912 分钟前
智能门锁为什么需要做欧盟网络安全 EN18031 标准检测认证
运维·服务器·网络
樂50233 分钟前
Web 服务、 Nfs 服务器以及 Dns 服务器综合实验
运维·服务器
莱茵不哈哈40 分钟前
Docker:容器化技术
运维·docker·容器
luckyext1 小时前
SQL SERVER常用聚合函数整理及示例
运维·服务器·数据库·sql·mysql·sqlserver·mssql
滴水之功1 小时前
C语言数据结构-链式栈
linux·c语言·数据结构
liulilittle1 小时前
Ubuntu 18.04 升级内核到 5.X(< 5.10)
linux·运维·服务器·ubuntu
老攀呀1 小时前
CentOS系统上挂载磁盘
linux·运维·centos
梅孔立2 小时前
centos原系统安装了Python3.7.9兼用在安装一个python3.8
linux·运维·centos
aqi002 小时前
FFmpeg开发笔记(六十一)Linux给FFmpeg集成H.266编码器vvenc
linux·ffmpeg·音视频·直播·流媒体
sanggou2 小时前
CentOS 7.6 升级 Openssl 及 Openssh 方法文档
linux·运维·centos