nginx网站服务

目录

一:基于授权的访问控制

基于授权的访问控制步骤

[LNMP 架构部署及应用](#LNMP 架构部署及应用)

[1:编译安装 MySQL 服务](#1:编译安装 MySQL 服务)

[2:安装 PHP 解析环境](#2:安装 PHP 解析环境)

[4.2:在 LNMP 平台中部署 Web 应用](#4.2:在 LNMP 平台中部署 Web 应用)


一:基于授权的访问控制

基于授权的访问控制步骤

  1. 使用 htpasswd 生成用户认证文件

使用 htpasswd 生成用户认证文件,如果没有该命令,可使用 yum 安装 httpd-tools软件包,用法与 Apache 认证时方式相同,如:htpasswd -c /usr/local/nginx/passwd.db test。在/usr/local/nginx/目录下生成了 passwd.db 文件,用户名是 test,密码输入 2 次。在passwd.db 中生成用户和密码的密文。

css 复制代码
[root@localhost ~]# yum -y install httpd-tools

[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db test

[root@localhost ~]# cat /usr/local/nginx/passwd.db

(2)修改密码文件权限为 400,将所有者改为 nginx,设置 Nginx 的运行用户能够读取

css 复制代码
[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db

[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db

[root@localhost ~]# ll -d /usr/local/nginx/passwd.db

(3)修改主配置文件 nginx.conf,添加相应认证配置项

css 复制代码
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

            auth_basic "secret";

            auth_basic_user_file /usr/local/nginx/passwd.db;

        }

(4)检测语法、重启服务

css 复制代码
[root@localhost ~]# nginx -t

[root@localhost ~]# systemctl restart nginx

(5)用浏览器访问网址,检验控制效果

LNMP 架构部署及应用

众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中"A"对应着 Web 服务软件 Apache。随着 Nginx 在企业中的使用越来越多,LNMP(或 LEMP)架构也越老越受到企业的青睐。

1:编译安装 MySQL 服务

本案例也可以使用rpm包安装mysql服务

(1)编译安装 MySQL 服务

css 复制代码
[root@www ~]# yum install -y autoconf

备注:

Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的 shell脚本的工具。

(2)启动 mysql,并设置密码

css 复制代码
[root@localhost ~]# systemctl start mysqld

[root@localhost ~]# mysqladmin -u root password '123.com'

2:安装 PHP 解析环境

(1)编译安装 PHP

```css root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel ``` * libxml2-devel:libxml是一个用来解析XML文档的函数库 * libjpeg-devel #是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现 * libpng-devel #libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作 * GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理 * zlib-devel #Zlib是一个压缩和解压模块 ```css [root@localhost ~]#tar -zxvf php-5.5.38.tar.gz ``` 如果mysql用yum装的: ```css [root@localhost php-5.5.38]# ./configure \ --prefix=/usr/local/php5 \ --with-gd \ --with-zlib \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-config-file-path=/usr/local/php5 \ --enable-mbstring \ --enable-fpm \ --with-jpeg-dir=/usr/lib ``` 注意: --with-mysqli=mysqlnd需要用ip地址的方式连接数据库,既可以是php和mysql装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101连接需要授权,哪怕连接本地数据库。 --with-mysqli=/usr/bin/mysql_config需要用localhost连接数据库,只能用于本地连接,也就是php和mysql装在同一个服务器上 ```css [root@localhost php-5.5.38]# make && make install ``` (2)安装后调整 ```css [root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini [root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/ [root@localhost php-5.5.38]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/ ``` (3)安装 ZendGuardLoader ```css [root@localhost ~]# tar -zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz [root@localhost ~]# cd zend-loader-php5.5-linux-x86_64/ [root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/ [root@localhost zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini #添加下列内容: zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so zend_loader.enable=1 ``` 3:**配置** **Nginx** **支持** **PHP** **环境** (1)启用 php-fpm 进程 ```css [root@localhost ~]# cd /usr/local/php5/etc/ [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf [root@localhost etc]# useradd -M -s /sbin/nologin php [root@localhost etc]# vim php-fpm.conf pid = run/php-fpm.pid user = php group = php pm.max_children = 50 ##最多子进程数 pm.start_servers = 20 ##启动时开启的进程数 pm.min_spare_servers = 5 ##最少空闲进程数 pm.max_spare_servers = 35 ##最多空闲进程数 [root@localhost etc]# /usr/local/sbin/php-fpm [root@localhost etc]# netstat -anpt | grep php-fpm ``` ```css [root@localhost ~]# vim /lib/systemd/system/php-fpm.service [Unit] Description=The PHP FastCGI Process Manager After=network.target [Service] Type=simple PIDFile=/usr/local/php5/php-fpm.pid ExecStart=/usr/local/php5/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php5/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target [root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl start php-fpm ``` (2)配置 Nginx 支持 PHP 解析 调用本机的 php-fpm 进程\[ ```css root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf Server{ listen 80; server_name www.bt.com; location / { root /var/www/html; index index.html index.htm index.php; } location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } } (3)PHP 页面访问测试 [root@localhost ~]# mkdir -p /var/www/html/ [root@localhost ~]# vim /var/www/html/test1.php [root@localhost ~]# vim /var/www/html/test2.php 恭喜你,数据库连接成功啦!!!"; mysqli_close($link); ?> ``` #### 3:在 LNMP 平台中部署 Web 应用 1:**下载并部署程序代码** ```css [root@localhost ~]# yum -y install unzip [root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip [root@localhost ~]# mkdir -p /var/www/html/bbs [root@localhost ~]# mv upload/* /var/www/html/bbs [root@localhost ~]# chown -R php:php /var/www/html/bbs/ ``` 2:**创建数据库** ```css [root@localhost ~]# mysql -uroot -p mysql>create database bbs; mysql>grant all on bbs.* to runbbs@127.0.0.1 identified by 'bbs123'; mysql>grant all on bbs.* to runbbs@'localhost' identified by 'bbs123'; ``` 3:**安装** **Web** **应用** 访问服务器 URL 地址,对网站进行初始化 http://192.168.10.101/bbs/install/index.php 总结: 本文详细介绍了基于授权的访问控制步骤及LNMP架构的部署与应用。首先,通过使用htpasswd生成用户认证文件,并配置Nginx的访问控制,确保只有授权用户能够访问特定资源。接着,文章详细描述了LNMP(Linux, Nginx, MySQL, PHP)架构的搭建过程,包括MySQL的编译安装、PHP解析环境的配置以及Nginx与PHP的集成。最后,通过部署Discuz论坛作为示例,展示了如何在LNMP平台上部署Web应用,并完成数据库的创建与权限配置。整个过程涵盖了从基础环境搭建到实际应用部署的完整流程,适合企业级应用的部署与维护。

相关推荐
xyz5999 分钟前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
linux修理工16 分钟前
Claude code与CC-switch安装使用
运维·人工智能
小叶lr20 分钟前
jenkins打包前端样式丢失/与本地不一致问题
运维·前端·jenkins
Agent产品评测局23 分钟前
互联网行业自动化平台选型,运营全流程提效指南:2026企业级智能体架构与实战全解析
运维·人工智能·ai·chatgpt·架构·自动化
亚空间仓鼠37 分钟前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...2 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家2 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun342 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
三思守心2 小时前
从 0 到 1 搭建自动化内容工厂:深度测评楼兰AI及其在全平台发帖中的表现
运维·服务器·自动化
草莓熊Lotso2 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql