1.課題的背景和意義
由于編碼過程中需要進(jìn)行文件上傳服務(wù),文件上傳后 需要有http資源的路徑需要訪問。原則上可以通過Apache 、iis 、nginx 等方式映射文件夾為網(wǎng)站即可實(shí)現(xiàn)。由于使用linux環(huán)境,nginx安裝方便快捷,故采用nginx來(lái)實(shí)現(xiàn);
域名資源寶貴,申請(qǐng)額外的域名流程繁瑣;
需要多個(gè)文件服務(wù)器,使用同一個(gè)域名代理進(jìn)行訪問。
2.環(huán)境資料準(zhǔn)備
linux服務(wù)器一臺(tái) centos
nginx 依賴包 gcc zlib zlib-devel pcre-devel openssl openssl-devel 等;
nginx 安裝包 http://nginx.org/en/download.html
3.安裝、設(shè)計(jì)與實(shí)現(xiàn)
設(shè)計(jì)思路:
第一步 安裝依賴包:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
第二步 解壓、編譯nginx源碼并安裝
tar -xvf nginx-1.19.8.tar.gz
cd nginx-1.19.8/
./configure (若依賴包未安裝 此處會(huì)報(bào)錯(cuò),安裝響應(yīng)的依賴包即可 yum -y install gcc-c++)
make
make install 默認(rèn)安裝目錄為:/usr/local/nginx/ 配置文件位置:/usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf 修改配置文件
cd /usr/local/nginx
./nginx 運(yùn)行 若修改配置文件后 需要reload nginx 命令為:./nginx -s reload
第三步:使用nginx 搭建三臺(tái)服務(wù)器、 并搭建代理服務(wù)器,使用二級(jí)目錄代理前面提到的三臺(tái)服務(wù)器;
1.建立文件目錄三個(gè);
/mydata/weixin_sc/images
/mydata/weixin_sc/uploadfiles
/mydata/weixin_sc/wxweb
2.nginx.conf修改配置 :
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#文件服務(wù)器1
server {
listen 8991;
server_name localhost;
location / {
root /mydata/weixin_sc/images;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#文件服務(wù)器2
server {
listen 8992;
server_name localhost;
location / {
root /mydata/weixin_sc/uploadfiles;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#文件服務(wù)器3
server {
listen 8993;
server_name localhost;
location / {
root /mydata/weixin_sc/wxweb;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#代理服務(wù)器
server {
listen 8994;
#listen 443 ssl;
server_name localhost;
#client_max_body_size 10M;
#啟用 SSL 功能, deprecated
#ssl on;
#證書文件名稱
#ssl_certificate
#私鑰文件名稱
#ssl_certificate_key
#ssl_session_timeout 5m;
#請(qǐng)按照以下協(xié)議配置
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#請(qǐng)按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
#ssl_prefer_server_ciphers on;
add_header X-Frame-Options SAMEORIGIN; #不允許iframe嵌套
location / {
proxy_pass http://localhost:8991;
}
#使用二級(jí)目錄代理三臺(tái)文件服務(wù)器,節(jié)約域名。; 注意 代理路徑 /,有無(wú)/會(huì)影響代理服務(wù),是否傳遞目錄問題;
location /images/ {
proxy_pass http://localhost:8991/;
}
location /uploadfiles/ {
proxy_pass http://localhost:8992/;
}
location /wxweb/ {
proxy_pass http://localhost:8993/;
}
}
}
重啟ng服務(wù): ./nginx -s reload
擴(kuò)展學(xué)習(xí):
查看nginx進(jìn)程是否啟動(dòng):
ps -ef | grep nginx
啟動(dòng),關(guān)閉,重啟,命令:
./nginx 啟動(dòng)
./nginx -s stop 關(guān)閉
./nginx -s reload 重啟
參考文獻(xiàn):
http://nginx.org/
http://nginx.org/en/docs/
