首頁 運維 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 #Enter輸入密碼,-c 表示產生文件,-d 是以 crypt 加密。
vi nginx.conf cd /usr/local/nginx/conf /usr/local/apache2/bin/htpasswd -c -d pass_file user_name #Enter輸入密碼,-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 pagecgi_params; .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;
}
/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;##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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
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