首页 运维 nginx nginx,apache的alias和认证功能实例分析

nginx,apache的alias和认证功能实例分析

May 24, 2023 pm 11:10 PM
apache nginx alias

首先看下看下apache 别名 怎么配置的:

复制代码 代码如下:


documentroot /www/jb51.net/www 这是虚拟主机的根目录吧,但是phpmyadmin 不在这个目录下,想访问。
servername www.jb51.net
serveralias jb51.net
alias /sdb "/www/public/phpmyadmin/" 就需要 别名功能,://www.jb51.net/sdb 这样就安全多了。

options indexes followsymlinks
allowoverride none
order allow,deny
allow from all

一 .apache认证

认证的类型:basic
digest摘要
认证方法:a、容器认证: ……
b、隐藏文件认证创建.htaccess文件
方法一、容器认证
a、 进入配置文件 vi /etc/httpd/conf/httpd.conf
b、 配置:大约在531行附近 配置如下:

allowoverride none ##不允许通过隐藏认证,即通过容器认证
authtype basic ##认证类型为basic
authname “ajian” ##认证名字为ajian
authuserfile /var/www/passwd/pass ##pass 为认证密码文件,指定密码文件存放的位置。
require valid-user ##有效用户(注意大小写,因为word的原因有些大小写有变化)
c、 创建目录 mkdir -p /var/www/passwd
进入目录 cd /var/www/passwd
d、创建apache用户 htpasswd -c pass ajian ##pass 为密码文件ajian为用户
更改 把pass文件的使用权给apache: chown apache.apache pass
附:再在pass文件中添加一个用户:htpasswd pass tt ##添加一个tt的用户到pass文件中
e、重启服务并测试
方法二、通过隐藏认证
和上面差不多 不过配置不一样
httpd主配置文件

allowoverride authconfig
创建隐藏文件并放到要通过认证的目录
eg: vi /var/www/html/mrtg
authtype basic
authname “ajian”
authuserfile /var/www/passwd/pass
require valid-user

下面是例子

nginx,apache的alias和认证功能实例分析

nginx,apache的alias和认证功能实例分析

nginx,apache的alias和认证功能实例分析

二、nginx 登录认证

nginx 的 http auth basic 的密码是用 crypt(3) 加密的。用 apache 的 htpasswd 可以生成密码文件。
没有 apache 自行安装。我安装的是 apache2,/usr/local/apach2。
cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #回车输入密码,-c 表示生成文件,-d 是以 crypt 加密。
vi nginx.conf cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #回车输入密码,-c 表示生成文件,-d 是以 crypt 加密。 vi nginx.conf 在 nginx.conf 文件中加入授权声明。这里要注意 nginx 0.6.7 开始,auth_basic_user_file 的相对目录是 nginx_home/conf,以前版本的相对目录是 nginx_home。

复制代码 代码如下:


server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on;
auth_basic "input you user name and password";
auth_basic_user_file htpasswd.file;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.php;
error_page 403 /404.php;

access_log /logs/tuan_access.log main;
}



针对目录的认证,在一个单独的location中,并且在该location中嵌套一个解释php的location,否则php文件不会执行并且会被下载。auth_basic在嵌套的location之后。

复制代码 代码如下:


server {
listen 80;
server_name tuan.xywy.com;
root /www/tuangou;
index index.html index.htm index.php;
autoindex on;
location ~ ^/admin/.* {
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename /www/tuangou$fastcgi_script_name;
include fastcgi_params;
}
root /www/tuangou/ ;
auth_basic "auth";
auth_basic_user_file htpasswd.file;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

access_log /logs/tuan_access.log main;
}



三.nginx alias功能配置自动列目录

复制代码 代码如下:


server {

listen www.jb51.net:88;

server_name www.jb51.net;

autoindex on; //开启列目录功能。

# charset gbk;
location /club { 访问的名字//www.jb51.net:88/club
alias /www/clublog/club.xywy.com/; 这是服务器上存放日志的地方
} 这段意思 访问www.jb51.net:88/club 就看到club目录的东东了。
location /{
root /www/access;
这段location 也可以没有 www.jb51.net:88 出来的是默认nxing 页面
# index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}



上面nginx配置意思就是: 访问http://hou.xywy.com/:88认证进去是默认访问服务器上/www/access/里面的目录,认证进去后url=http://hou.xywy.com:88/club 就出来 /www/clublog/club.xywy.com/ 里面的目录的内容了。,可能很绕,仔细分析就好了。

root 和 alias 的区别。
最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。

这样在看这段就很清晰了,

复制代码 代码如下:


location /abc/ {
alias /home/html/abc/;
}


在这段配置下,http://test/abc/a.html就指定的是/home/html/abc/a.html。这段配置亦可改成

复制代码 代码如下:


location /abc/ {
root /home/html/;
}


这样,nginx就会去找/home/html/目录下的abc目录了,得到的结果是相同的。

但是,如果我把alias的配置改成:

复制代码 代码如下:


location /abc/ {
alias /home/html/def/;
}


那么nginx将会从/home/html/def/取数据,这段配置还不能直接使用root配置,如果非要配置,只有在/home/html/下建立一个 def->abc的软link(快捷方式)了。

一般情况下,在location /中配置root,在location /other中配置alias是一个好习惯。

以上是nginx,apache的alias和认证功能实例分析的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
nginx在windows中怎么配置 nginx在windows中怎么配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

docker怎么启动容器 docker怎么启动容器 Apr 15, 2025 pm 12:27 PM

Docker 容器启动步骤:拉取容器镜像:运行 "docker pull [镜像名称]"。创建容器:使用 "docker create [选项] [镜像名称] [命令和参数]"。启动容器:执行 "docker start [容器名称或 ID]"。检查容器状态:通过 "docker ps" 验证容器是否正在运行。

docker容器名称怎么查 docker容器名称怎么查 Apr 15, 2025 pm 12:21 PM

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

怎么查看nginx是否启动 怎么查看nginx是否启动 Apr 14, 2025 pm 01:03 PM

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

docker怎么创建容器 docker怎么创建容器 Apr 15, 2025 pm 12:18 PM

在 Docker 中创建容器: 1. 拉取镜像: docker pull [镜像名] 2. 创建容器: docker run [选项] [镜像名] [命令] 3. 启动容器: docker start [容器名]

Zookeeper集群在CentOS如何搭建 Zookeeper集群在CentOS如何搭建 Apr 14, 2025 pm 02:09 PM

在CentOS系统上部署ZooKeeper集群,需要以下步骤:环境准备安装Java运行环境:使用以下命令安装Java8开发工具包:sudoyuminstalljava-1.8.0-openjdk-devel下载ZooKeeper:从ApacheZooKeeper官方网站下载适用于CentOS的版本(例如ZooKeeper3.8.x)。使用wget命令下载,并替换zookeeper-3.8.x为实际版本号:wgethttps://downloads.apache.or

如何解决CentOS系统故障 如何解决CentOS系统故障 Apr 14, 2025 pm 01:57 PM

解决CentOS系统故障的方法有很多,以下是一些常见的步骤和技巧:1.检查日志文件/var/log/messages:系统日志,包含各种系统事件。/var/log/secure:安全相关日志,如SSH登录尝试。/var/log/httpd/error_log:如果使用Apache服务器,这里会有错误信息。2.使用诊断工具dmesg:显示内核环缓冲区的内容,有助于了解硬件和驱动问

nginx怎么启动 nginx怎么启动 Apr 14, 2025 pm 01:06 PM

问题:如何启动 Nginx?答案:安装 Nginx启动 Nginx验证 Nginx 是否已启动探索其他启动选项自动启动 Nginx

See all articles