1. 程式人生 > >Nginx安裝 默認虛擬主機 Nginx用戶認證 Nginx域名重定向

Nginx安裝 默認虛擬主機 Nginx用戶認證 Nginx域名重定向

NGINX

一、Nginx安裝
技術分享圖片
#cd /usr/local/src/
#wget http://101.44.1.3/files/514900000711527E/nginx.org/download/nginx-1.14.0.tar.gz
#tar zxf nginx-1.14.0.tar.gz //解壓
#cd nginx-1.14.0/
#./configure --prefix=/usr/local/nginx
#make
#make install
#ls /usr/local/nginx/sbin/nginx //nginx啟動路徑,核心文件
#/usr/local/nginx/sbin/nginx -t //支持-t,查看配置文件是否有錯
#vim /etc/init.d/nginx //復制如下內容(參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/etc_init.d_nginx?public=true)
#chmod 755 /etc/init.d/nginx
#chkconfig --add nginx
#chkconfig nginx on
#cd /usr/local/nginx/conf/
#mv nginx.conf nginx.conf.1 //給原來/usr/local/nginx/conf/目錄下的nginx.conf修改名稱為nginx.conf1,我們不使用默認的這個配置文件,使用自定義的
#vim nginx.conf //復制如下內容,(參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/nginx.conf?public=true)
配置文件註釋:
user nobody nobody; //用來定義啟動nginx是哪個用戶
worker_processes 2; //定義子進程有幾個
worker_rlimit_nofile 51200; //定義nginx最多可以打開多少個文件
worker_connections 6000; //定義進程最多有多少個連接
server //每一個server對應一個虛擬主機
{
listen 80;
server_name localhost; //定義域名
index index.html index.htm index.php;
root /usr/local/nginx/html; //網站根目錄
location ~ .php$ //用來配置解析php的
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock; //指定sock地址
fastcgi_pass 127.0.0.1:9000; //和sock是兩種不同的方法,之前配置文件定義的哪一種,這裏就選擇哪個
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
#/usr/local/nginx/sbin/nginx -t //編輯完配置文件檢查有沒有語法錯誤
#/etc/init.d/nginx start //啟動nginx,註意啟動之前需要先把httpd關閉
#ps aux |grep nginx //查看進程
#curl localhost //測試下localhost
#vim /usr/local/nginx/html/1.php //編輯一個1.php文件
<?php
echo "This is nginx test page.";
#curl localhost/1.php //測試下是否可以成功解析

二、默認虛擬主機
技術分享圖片
#vim nginx.conf //修改配置文件,刪除最下面server那一段虛擬主機配置,添加如下一行在最後
include vhost/*.conf;
#mkdir vhost //在/usr/local/nginx/conf/這個目錄下創建一個vhost文件夾
#cd vhost/
#vim aaa.com.conf //創建一個aaa.com.conf文件,加入如下內容
server
{
listen 80 default_server; // 有這個標記的就是默認虛擬主機
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
}
#mkdir /data/wwwroot/default //創建efault目錄
#cd /data/wwwroot/default/
#vim index.html //創建index.html文件,在裏面寫一行內容
This is the default site.
#/usr/local/nginx/sbin/nginx -t //檢查語法有沒有錯誤
#/usr/local/nginx/sbin/nginx -s reload //重新加載,不需要重啟nginx
#curl localhost
This is the default site.
#curl -x127.0.0.1:80 bbb.com //默認虛擬主機,不管什麽域名,只要解析過來,它都能訪問到這個站點
需要註意事項:
默認虛擬主機一定要加上default_server
nginx.conf支持include

三、Nginx用戶認證
技術分享圖片
#cd /usr/local/nginx/conf/vhost/
#vim test.com.conf //再創建一個test.com.conf文件,加入如下內容
server
{
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;

location /
{
auth_basic "Auth"; //定義用戶認證的名字
auth_basic_user_file /usr/local/nginx/conf/htpasswd; //用戶名密碼文件路徑
}
}
#/usr/local/apache2.4/bin/htpasswd //如果已經安裝過Apache,可以使用這個命令
#yum install -y httpd //如果沒有安裝Apache,可以yum安裝一下Apache,安裝完成後可以使用上面那個命令
#/usr/local/apache2.4/bin/htpasswd -c /usr/local/nginx/conf/htpasswd aming
//在/usr/local/nginx/conf/目錄下生成htpasswd文件,為aming用戶設置密碼
#cat /usr/local/nginx/conf/htpasswd //查看下這個文件裏面生成一個密碼
aming:$apr1$.5xIzl61$B9T1V85Z5LkqCKriYOl6g/
#/usr/local/apache2.4/bin/htpasswd /usr/local/nginx/conf/htpasswd user1 //再創建第二個用戶就省略掉-c選項,如果再加上-c選項就會重置
#cat /usr/local/nginx/conf/htpasswd //看到文件下生成兩個用戶密碼
aming:$apr1$.5xIzl61$B9T1V85Z5LkqCKriYOl6g/
user1:$apr1$snuqeeD2$HdkHaUKCwG4Hzk0L9CXDX0
#/usr/local/nginx/sbin/nginx -t //檢查語法
#/usr/local/nginx/sbin/nginx -s reload //重新加載,-s reload的好處是有錯誤它不會重新加載,如果restart的話,配置文件有錯誤,那麽服務就啟動不了了
#curl -x127.0.0.1:80 test.com //訪問提示401錯誤,需要用戶名密碼
技術分享圖片
#curl -uaming:aming -x127.0.0.1:80 test.com //訪問提示404代碼
#mkdir /data/wwwroot/test.com
#echo "test.com" > /data/wwwroot/test.com/index.html
#curl -uaming:aming -x127.0.0.1:80 test.com //訪問正常
設置單個目錄訪問需要密碼: 如限制/admin/目錄
#vi test.com.conf
server
{
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;

location  /admin/         //直接把原來的根目錄/修改為/admin/目錄即可
{
    auth_basic              "Auth";         //定義用戶認證的名字
    auth_basic_user_file   /usr/local/nginx/conf/htpasswd;    //用戶名密碼文件路徑
}

}
#/usr/local/nginx/sbin/nginx -t //檢查語法
#/usr/local/nginx/sbin/nginx -s reload //重新加載
#curl -x127.0.0.1:80 test.com/admin //訪問提示401,這就需要密碼了,證明限制admin目錄成功

Nginx安裝 默認虛擬主機 Nginx用戶認證 Nginx域名重定向