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

nginx核心功能

目录

基于授权的访问控制

基于授权的访问控制简介

基于授权访问控制步骤

使用htpasswd生成用户文件

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

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

检测语法、重启服务

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

基于客户端的访问控制

基于客户端的访问控制简介

基于客户端的访问控制步骤

nginx虚拟主机

基于域名的虚拟主机

设置客户端域名解析

准备各个网站的目录和测试首页

修改配置文件

基于IP的虚拟主机

为服务器设置多个IP地址

修改Nginx的配置文件,使基于IP的虚拟主机生效

基于端口的虚拟主机

选择系统中不使用的端口,多个端口映射到同一IP地址

检测端口是否运行正常

LNMP架构部署及应用

编译安装MySQL服务

复制配置文件到/etc下,并把MySQL添加到服务

初始化数据库

启动mysql,并设置密码

安装PHP解析环境

安装后调整

安装ZendGuardLoader

配置Nginx支持PHP环境

启用php-fpm进程

配置Nginx支持PHP解析

PHP页面访问测试

在LNMP平台中部署Web应用

下载并部署程序代码

创建数据库

安装Web应用


基于授权的访问控制

基于授权的访问控制简介

Nginx与Apahce一样,可以实现基于用户授权的访问控制,兰客户端想要访问相应网站
或者目录时,要求用户输入用户名和密码才能正常访问,配置步骤与Apache基本一致。
概括为以下几个步骤。
生成用户密码认证文件。
修改主配置文件相对应目录,添加认证配置项。
重启服务,访问测试。

基于授权访问控制步骤

使用htpasswd生成用户文件

使用htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与 Apache 认证时方式相同。

[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 

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

[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

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

[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;
}

检测语法、重启服务

[root@localhost ~]# nginx -t
[root@localhost ~]# systemctl restart nginx

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

基于客户端的访问控制

基于客户端的访问控制简介

基于客户端的访问控制是通过客户端IP地址,决定是否允许双页面访问。Nginx基于客户端的访问控制要比Apache简单,规则如下:

deny IP/IP段:拒绝某个IP段的客户端访问。
allow IP/IP段:允许某个IP段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。

基于客户端的访问控制步骤

修改主配置文件nginx.conf,添加相应配置项

location / {
root
html;
index
index.html index.htm;
# auth_basic "secret";
# auth_basic_user_file /usr/local/nginx/passwd.db;
deny 192.168.10.3;
allow all;

}

nginx虚拟主机

利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器,同一组Ngirx进程上运行多个网站的功能。跟Apache一样,Nginx也可以配置多种类型的虚拟主机,分别是基于IP的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。

基于域名的虚拟主机

设置客户端域名解析

修改hosts文件,加入www.benet.com和ww.accp.com这两个域名
192.168.10.101 WWW.benet.com
192.168.10.101 www.accp.com

准备各个网站的目录和测试首页

[root@localhost ~]# mkdir-p/var/www/html/benet/
[root@localhost ~]# mkdir -p/var/www/html/accp/
[root@localhost ~]# echo "www.benet.com">>/var/www/httml/benet/index.html
[root@localhost ~]# echo "www.accp.com">>/var/www/htnhl/accp/index.html

修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

server {
listen 80;
server_name www.benet.com;
access_log logs/www.benet.com.access.log;
charset utf-8;
location / {
root /var/www/html/benet;
index  index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = 50x.html {
root html;

 }

}

 server{
listen 80;
server_name www.accp.com;
access_log logs/www.accp.com.access.log;
charset utf-8;
location / {
root /var/www/html/accp;

index _
index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = 50x.html {
root html;

  }

}

 [root@localhost ~]# nginx -t
[root@localhost ~]# systemctl restart nginx

 

基于IP的虚拟主机

为服务器设置多个IP地址

[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp ifcfg-ens33 :ifcfg-ens 33 :0
[root@localhost network-scripts]# cp ifcfg-ens33 :ifcfg-ens 33 :1
[root@localhost network-scripts]# vim ifcfg-ens33:0

 IPADDR=192.168.10.151
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:0
DEVICE=ens33:0

 [root@localhost network-scripts]# vim ifcfg-ens33:1

IPADDR=192.168.10.152
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:1
DEVICE=ens33:1

 [root@localhost network-scripts]# nmcli c reload
[root@localhost network-scripts]# nmcli c up ens333
[root@localhost network-scripts]# ip add

修改Nginx的配置文件,使基于IP的虚拟主机生效

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

 server {
listen  192.168.10.151:80;

server_name  www.benet.com;

}
server{
listen
192.168.10.152:80;
server_name www.accp.com;

}

 [root@localhost ~]# systemctl restart nginx

基于端口的虚拟主机

选择系统中不使用的端口,多个端口映射到同一IP地址

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

 server{
listen
192.168.10.101:8080;
www.benet.com;
server_name

}

server{
listen
192.168.10.101:8888;
server_name www.accp.com;

}

[root@localhost ~]# systemctl restart nginx

检测端口是否运行正常

[root@localhost ~]# netstat -anpt | grep nginx

LNMP架构部署及应用

编译安装MySQL服务

[root@www ~]# yum install -y autoconf

 [root@localhost ~]# yum -y install ncurses-devel gcc-c++ perl-Module-Install cmake
[root@localhost ~]# tar -zxvf mysql-5.6.36.tar.gz
[root@localhost ~]# cd mysql-5.6.36/
[root@localhost mysql-5.6.36]# cmake \

[root@localhost mysql-5.6.36]# make & make install

复制配置文件到/etc下,并把MySQL添加到服务

[root@localhost mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
[root@localhost mysql-5.6.36]# cp support-files/mysql.serve/etc/init.d/mysqld
[root@localhost mysql-5.6.36]# chmod +x letc/rc.d/init.d/mysqld
[root@localhost mysql-5.6.36]# chkconfig --add mysqld
[root@localhost mysql-5.6.36]# chkconfig mysqld on

[root@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile
[root@localhost mysql-5.6.36]# . /etc/profile

初始化数据库

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql

启动mysql,并设置密码

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

安装PHP解析环境

[root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-deve

[root@localhost ~]#tar -zxvf php-5.38.tar.gz

安装后调整

[root@localhost php-5.38]# cp php.ini-development/usr/loca/php5/php.in
[root@localhost php-5.38]# In -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.38]# In -s /usr/local/php5/sbin/* /usr/local/sbin/

安装ZendGuardLoader

[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=/ust/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

配置Nginx支持PHP环境

启用php-fpm进程

[root@localhost ~]# cd /usr/local/php5/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conof
[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
[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

配置Nginx支持PHP解析

[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;

  }

}

PHP页面访问测试

[root@localhost ~]# mkdir-p/var/www/html/
[root@localhost ~]# vim /var/www/html/test1.php

<?php

phpinfo();

?>

[root@localhost ~]# vim /var/www/html/test2.php

<?php

$link=mysqli_connect('localhost','root','pwd123');

if($link)

echo "恭喜你,数据库连接成功!";

mysqli_close($link);

?>

在LNMP平台中部署Web应用

下载并部署程序代码

[root@localhost ~]# yum -y install unzip

[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip

[root@localhost ~]# mv upload/ /var/www/bdqn/bbs

[root@localhost ~]# chown -R php:php /var/www/bdqn/bbs

创建数据库

[root@localhost ~]# mysql -u root -p

Enter password:

mysql> create database bbs;

mysql> grant all on bbs.* to runbbs@localhost identified by 'bbs@yh123';

安装Web应用

相关文章:

  • 微服务开发中的应用生命周期管理
  • Javscript 字符串的常用方法有哪些?
  • k8s 学习记录 (六)_Pod 污点和容忍性详解
  • 20250429 垂直地表发射激光测量偏转可以验证相对性原理吗
  • Lua 第14部分 数据结构
  • 【论文阅读】PEEKABOO: Interactive Video Generation via Masked-Diffusion
  • Educational Codeforces Round 178 (Rated for Div. 2)
  • 在yolo中Ultralytics是什么意思呢?超越分析的智能
  • 【专题五】位运算(1):常见位运算操作总结
  • 【Java学习】Java的CGLIB动态代理:通俗解释与使用指南
  • 短视频矩阵批量剪辑与场景剪辑功能 OEM 定制开发
  • deepseek_ai_ida_plugin开源插件,用于使用 DeepSeekAI 将函数反编译并重命名为人类可读的视图。该插件仅在 ida9 上进行了测试
  • 【开源项目】基于sherpa-onnx的实时语音识别系统 - LiveASR
  • 从Windows开发迁移到信创开发的指南:国产替代背景下的技术路径与实践
  • swagger2升级至openapi3的利器--swagger2openapi
  • 跨平台项目部署全攻略:Windows后端+Mac前端在服务器的协同实战
  • 基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)
  • jupyter已经安装但是无法通过命令行启动
  • AI编程工具“幻觉”风险与飞算JavaAl的破局之道
  • 万界星空科技QMS质量管理系统几大核心功能详解
  • wordpress安全权限/手机优化器
  • wordpress 签到插件/seo推广需要多少钱
  • 哈尔滨网站建设贴吧/域名批量查询系统
  • 鱿鱼网站男女做愛免費视頻/微信营销方案
  • 做酒类直供网站行吗/电商网站建设价格
  • 百度怎么做网站域名/互联网营销是什么意思