nginx快速部署一個網(wǎng)站服務(多域名+多端口)
一、nginx虛擬主機,部署網(wǎng)站
都是在同一臺服務器上部署
二、部署單域名/IP網(wǎng)站服務
1、創(chuàng)建一個普通用戶,用戶管理nginx網(wǎng)站服務
# 創(chuàng)建一個名為www的用戶組 groupadd www -g 666 # 創(chuàng)建一個名為www的用戶并添加到www的用戶組中 useradd www -u 666 -g 666 -M -s /sbin/nologin # 查看用戶id id www #結果 uid=666(www) gid=666(www) groups=666(www)
2、修改nginx主配置文件
[root@iz0jlfqv8fyt7iuxoec4clz ~]# cat /etc/nginx/nginx.conf user www; # 設置運行用戶,剛剛創(chuàng)建的用戶 worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; # include導入該目錄下的*.conf配置文件 }
3、創(chuàng)建虛擬主機nignx子配置文件
只需要寫server{}標簽即可。
# 先看conf.d下還有沒有其他的*.conf結尾的,有的話先備份; mv default.conf default.conf-bak # 創(chuàng)建虛擬主機nignx子配置文件(qqfly配置文件) vim /etc/nginx/conf.d/qqfly.conf # 寫入如下信息,自己的根據(jù)情況自行修改(域名或ip;index.html的訪問路徑) server { listen 80; # nginx會匹配 域名/IP:80 server_name 域名/IP/localhost; # 支持中文的參數(shù) charset utf-8; location / { # 根據(jù)root參數(shù),填寫網(wǎng)頁根目錄信息 # 表示當你訪問 http://域名:80 ,自動來這個目錄下找數(shù)據(jù) root /www/qqfly/; # 默認找 /www/qqflq/ 的名字叫做index.html的文件 index index.html; } }
上面配置文件中配置了index.html的地址,這里可以看到是沒有的,我們創(chuàng)建一下;
# 創(chuàng)建一個存放網(wǎng)頁訪問地址的目錄 mkdir -p /www/qqfly/ # 創(chuàng)建網(wǎng)頁靜態(tài)文件,index.html qqfly.jpg qqfly.txt # 部署一個靜態(tài)網(wǎng)站,最基本的提供,html,jpg,txt等靜態(tài)數(shù)據(jù);如果是其他類型的文件,nginx默認不解析,直接下載 # nginx都可以幫你去返回,解析請求 cd /www/qqfly/ # 創(chuàng)建靜態(tài)頁面index.html cat > /www/qqfly/index.html << EOF > <meta charset=utf-8> > <H1>這是一個 qqfly 的測試頁面;用于證明nginx一個網(wǎng)站部署成功了;</H1> > EOF # 創(chuàng)建一個jpg文件 wget -O qqfly.jpg https://i1.hdslb.com/bfs/archive/5edd3d62a5ca140063ef8e32a852348a422b86b6.jpg # 創(chuàng)建一個txt文件 echo "qq飛車游戲很好玩!測試!" > qqfly.txt # 修改靜態(tài)文件的屬主,屬組 chown -R www:www /www/
4、測試nginx配置文件語法,然后啟動
# 檢測nginx配置中語法是否有誤 nginx -t
ok則為正常,沒有錯誤;
啟動nginx
# 查看nginx狀態(tài) systemctl status nginx # 重啟nginx systemctl restart nginx
5、域名訪問地址
如果是使用的域名,那么需要在本地配置dns域名解析
分別添加二級域名,三級域名,hosts解析
ip 三級域名 二級域名
配置好還是訪問不到?
1、可以先看看可以ping通域名嗎。
2、檢查你本地是否設置了代理,如果有則關閉。
6、IP訪問地址
這里我使用的是ip地址訪問,因為我的域名需要備案,申請還沒下來,所以先用ip測試吧;
訪問html資源
訪問jpg資源
訪問txt資源
如果是其他類型的文件,nginx默認不解析,會直接下載
直接生成靜態(tài)數(shù)據(jù),不用重啟nginx,這就是磁盤上的一些靜態(tài)數(shù)據(jù)
nginx的server{}虛擬主機,以及設置了,去這個目錄下搜索資料
nginx默認不識別這個test.ttt格式的文件,因此直接下載了
例如:
cat > /www/qqfly/qqfly.ttt << EOF qq飛車游戲很好玩!測試! EOF
因為是靜態(tài)頁面,上面也說了,修改不用重啟;(但是修改配置文件的話就需要重啟nignx才能生效;)
頁面直接訪問,會讓你下載;
下載完打開,里面的內(nèi)容就是剛剛寫進去的內(nèi)容;
三、nginx的配置文件匹配
還記得上面讓備份的一個nginx配置文件嗎,/etc/nginx/conf.d/default.conf
,這個里面的server_name 寫的是localhost,而咱們用的是ip訪問網(wǎng)站,所以默認會先去找default.conf
;所以在上面給他備份了一下,然后才會去找另一個conf文件。
nginx配置會有一個先后順序,默認按照文件名的字典順序讀取 /etc/nginx/conf.d
目錄下的配置文件。如果需要特定的加載順序,可以使用 include
指令來指定讀取文件的順序。
#先看當前有幾個nginx配置文件 [root@iz0jlfqv8fyt7iuxoec4clz conf.d]# ls default.conf-bak qqfly.conf #先看第一個default.conf [root@iz0jlfqv8fyt7iuxoec4clz conf.d]# grep -Ev '#|^$' default.conf-bak server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } #再看第二個配置文件 [root@iz0jlfqv8fyt7iuxoec4clz conf.d]# cat qqfly.conf server { listen 80; # nginx會匹配 域名/IP:80 server_name 域名; # 支持中文的參數(shù) charset utf-8; location / { # 根據(jù)root參數(shù),填寫網(wǎng)頁根目錄信息 # 表示當你訪問 http://域名:80 ,自動來這個目錄下找數(shù)據(jù) root /www/qqfly/; # 默認找 /www/qqflq/ 的名字叫做index.html的文件 index index.html; } }
可以看到一個寫的域名,一個寫的localhost;因為我們這邊的域名用不了,所以,要是不備份那個default.conf
默認的讀取的就是default.conf
這個配置文件;
如果域名是沒問題的,那么直接用域名訪問,就會直接去找qqfly.conf
這個配置文件,就不會存在先后順序什么的。
四、部署多域名網(wǎng)站服務
1、首先準備兩個域名、index路徑、nginx配置文件
域名 | nginx的index路徑 | nginx的配置文件名 |
---|---|---|
域名1 (test1.top) | /www/test1/index.html | /etc/nginx/conf.d/test1.conf |
域名2 (test2.top) | /www/test1/index.html | /etc/nginx/conf.d/test2.conf |
配置域名的話自己配置就可以;
2、創(chuàng)建兩個域名的nginx配置文件 test1域名
vim /etc/nginx/conf.d/test1.conf #內(nèi)容如下 server { listen 80; #域名1 server_name test1.top; # 支持中文的參數(shù) charset utf-8; location / { root /www/test1/; index index.html; } }
test2域名
vim /etc/nginx/conf.d/test2.conf #內(nèi)容如下 server { listen 80; #域名1 server_name test2.top; # 支持中文的參數(shù) charset utf-8; location / { root /www/test2/; index index.html; } }
3、創(chuàng)建兩個域名的index.html訪問頁面
test1 的 index.html
# 創(chuàng)建test1和test2目錄 mkdir -p /www/{test1,test2} # 創(chuàng)建完之后,寫入數(shù)據(jù)到test1/index.html中 cat > /www/test1/index.html << EOF > <meta charset=utf-8> > <H2> test1 頁面測試 </H2> > EOF
test2 的 index.html
# 給test2域名寫入index.html頁面數(shù)據(jù) cat > /www/test2/index.html << EOF <meta charset=utf-8> <H2> test2 頁面測試 </H2> EOF
4、檢查nignx配置是否有誤 并 重啟nginx服務
# 檢查nignx配置是否有誤 nginx -t # 重啟nginx服務 systemctl restart nginx
5、頁面訪問兩個域名
test1.top
teset2.top
可以看到分別兩個頁面,這樣多域名網(wǎng)站服務部署成功。
五、部署多端口網(wǎng)站服務
1、首先準備兩個端口、index路徑、nginx配置文件(一個即可)
端口 | nginx的index路徑 | nginx的配置文件名(使用同一個配置) |
---|---|---|
81 | /www/81/index.html | /etc/nginx/conf.d/port.conf |
82 | /www/82/index.html | /etc/nginx/conf.d/port.conf |
2、創(chuàng)建兩個port的nginx配置文件(一個配置中)
vim /etc/nginx/conf.d/port.conf # 81 端口配置 server { listen 81; server_name localhost; # 支持中文的參數(shù) charset utf-8; location / { root /www/81/; index index.html; } } # 82 端口配置 server { listen 82; server_name localhost; # 支持中文的參數(shù) charset utf-8; location / { root /www/82/; index index.html; } }
3、創(chuàng)建兩個端口的index.html頁面
# 創(chuàng)建目錄 mkdir -p /www/{81,82} # 創(chuàng)建81和82的index頁面測試數(shù)據(jù) cat > /www/81/index.html << EOF <meta charset=utf-8> <H1>我是81,歡迎來到我的頁面</H1> EOF cat > /www/82/index.html << EOF <meta charset=utf-8> <H1>我是82,歡迎來到我的頁面</H1> EOF
4、檢查nignx配置是否有誤 并 重啟nginx服務
# 檢查nignx配置是否有誤 nginx -t # 重啟nginx服務 systemctl restart nginx
5、頁面訪問兩個端口
ip:端口
ip:81
- ip:82
5.1 頁面訪問兩個端口 --> 各添加一個jpg頁面
到網(wǎng)上隨便照兩張圖,分別放到/www/81/
下和/www/82/
下;
# 81端口的圖片 wget -O /www/81/81.jpg https://picnew12.photophoto.cn/20180728/81jianjunjieqizhiyishuzizitisheji-30355854_1.jpg # 82端口的圖片 wget -O /www/82/82.jpg https://img95.699pic.com/xsj/0v/2f/k8.jpg%21/fw/700/watermark/url/L3hzai93YXRlcl9kZXRhaWwyLnBuZw/align/southeast
這里添加完成之后,不需要重啟nginx,直接在頁面訪問 ip:端口/圖片名
81 服務器(ip:81/81.jpg)
82 服務器(ip:82/82.jpg)
5.2 頁面訪問兩個端口 --> 各添加一個txt資源
echo "我又來測試了,這里是 81 的一個測試頁面" > /www/81/81.txt echo "我也又來測試了,這是是 82 的一個測試頁面" > /www/82/82.txt
這里添加完成之后,同樣也不需要重啟nginx,直接在頁面訪問 ip:端口/txt名
81 服務器(ip:81/81.txt)
82 服務器(ip:82/82.txt)
到這里就完成了nginx部署一個網(wǎng)站及多個域名的網(wǎng)站和多個端口的網(wǎng)站
到此這篇關于nginx快速部署一個網(wǎng)站服務(多域名+多端口)的文章就介紹到這了,更多相關nginx部署網(wǎng)站服務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Nginx服務500:Internal Server Error原因之一
這篇文章主要介紹了Nginx服務500:Internal Server Error原因之一,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Nginx 路由轉發(fā)和反向代理location配置實現(xiàn)
本文主要介紹了Nginx 路由轉發(fā)和反向代理location配置實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11如何實現(xiàn)Nginx同一端口同時支持http與https協(xié)議
最近有一個需求,需要讓一個端口的http服務支持https訪問,本文就來介紹一下如何實現(xiàn)Nginx同一端口同時支持http與https協(xié)議,感興趣的可以了解一下2023-11-11