nginx快速部署一個網(wǎng)站服務(wù)(多域名+多端口)
一、nginx虛擬主機,部署網(wǎng)站
都是在同一臺服務(wù)器上部署
二、部署單域名/IP網(wǎng)站服務(wù)
1、創(chuàng)建一個普通用戶,用戶管理nginx網(wǎng)站服務(wù)
# 創(chuàng)建一個名為www的用戶組 groupadd www -g 666 # 創(chuàng)建一個名為www的用戶并添加到www的用戶組中 useradd www -u 666 -g 666 -M -s /sbin/nologin # 查看用戶id id www #結(jié)果 uid=666(www) gid=666(www) groups=666(www)
2、修改nginx主配置文件
[root@iz0jlfqv8fyt7iuxoec4clz ~]# cat /etc/nginx/nginx.conf
user www; # 設(shè)置運行用戶,剛剛創(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導(dǎo)入該目錄下的*.conf配置文件
}
3、創(chuàng)建虛擬主機nignx子配置文件
只需要寫server{}標簽即可。
# 先看conf.d下還有沒有其他的*.conf結(jié)尾的,有的話先備份;
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)頁根目錄信息
# 表示當(dā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、檢查你本地是否設(shè)置了代理,如果有則關(guān)閉。
6、IP訪問地址
這里我使用的是ip地址訪問,因為我的域名需要備案,申請還沒下來,所以先用ip測試吧;
訪問html資源

訪問jpg資源

訪問txt資源

如果是其他類型的文件,nginx默認不解析,會直接下載
直接生成靜態(tài)數(shù)據(jù),不用重啟nginx,這就是磁盤上的一些靜態(tài)數(shù)據(jù)
nginx的server{}虛擬主機,以及設(shè)置了,去這個目錄下搜索資料
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 指令來指定讀取文件的順序。
#先看當(dāng)前有幾個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)頁根目錄信息
# 表示當(dāng)你訪問 http://域名:80 ,自動來這個目錄下找數(shù)據(jù)
root /www/qqfly/;
# 默認找 /www/qqflq/ 的名字叫做index.html的文件
index index.html;
}
}
可以看到一個寫的域名,一個寫的localhost;因為我們這邊的域名用不了,所以,要是不備份那個default.conf默認的讀取的就是default.conf這個配置文件;
如果域名是沒問題的,那么直接用域名訪問,就會直接去找qqfly.conf這個配置文件,就不會存在先后順序什么的。
四、部署多域名網(wǎng)站服務(wù)
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服務(wù)
# 檢查nignx配置是否有誤 nginx -t # 重啟nginx服務(wù) systemctl restart nginx
5、頁面訪問兩個域名
test1.top
teset2.top
可以看到分別兩個頁面,這樣多域名網(wǎng)站服務(wù)部署成功。
五、部署多端口網(wǎng)站服務(wù)
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服務(wù)
# 檢查nignx配置是否有誤 nginx -t # 重啟nginx服務(wù) 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 服務(wù)器(ip:81/81.jpg)

82 服務(wù)器(ip:82/82.jpg)

5.2 頁面訪問兩個端口 --> 各添加一個txt資源
echo "我又來測試了,這里是 81 的一個測試頁面" > /www/81/81.txt echo "我也又來測試了,這是是 82 的一個測試頁面" > /www/82/82.txt
這里添加完成之后,同樣也不需要重啟nginx,直接在頁面訪問 ip:端口/txt名
81 服務(wù)器(ip:81/81.txt)

82 服務(wù)器(ip:82/82.txt)

到這里就完成了nginx部署一個網(wǎng)站及多個域名的網(wǎng)站和多個端口的網(wǎng)站
到此這篇關(guān)于nginx快速部署一個網(wǎng)站服務(wù)(多域名+多端口)的文章就介紹到這了,更多相關(guān)nginx部署網(wǎng)站服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx服務(wù)500:Internal Server Error原因之一
這篇文章主要介紹了Nginx服務(wù)500:Internal Server Error原因之一,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Nginx 路由轉(zhuǎn)發(fā)和反向代理location配置實現(xiàn)
本文主要介紹了Nginx 路由轉(zhuǎn)發(fā)和反向代理location配置實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
如何實現(xiàn)Nginx同一端口同時支持http與https協(xié)議
最近有一個需求,需要讓一個端口的http服務(wù)支持https訪問,本文就來介紹一下如何實現(xiàn)Nginx同一端口同時支持http與https協(xié)議,感興趣的可以了解一下2023-11-11

