1.課題的背景和意義
由于編碼過程中需要進行文件上傳服務琢锋,文件上傳后 需要有http資源的路徑需要訪問激涤。原則上可以通過Apache 由缆、iis 顽馋、nginx 等方式映射文件夾為網(wǎng)站即可實現(xiàn)矩欠。由于使用linux環(huán)境财剖,nginx安裝方便快捷,故采用nginx來實現(xiàn)癌淮;
域名資源寶貴躺坟,申請額外的域名流程繁瑣;
需要多個文件服務器乳蓄,使用同一個域名代理進行訪問咪橙。
2.環(huán)境資料準備
linux服務器一臺 centos
nginx 依賴包 gcc zlib zlib-devel pcre-devel openssl openssl-devel 等;
nginx 安裝包 http://nginx.org/en/download.html
3.安裝虚倒、設計與實現(xiàn)
設計思路:
第一步 安裝依賴包: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 (若依賴包未安裝 此處會報錯,安裝響應的依賴包即可 yum -y install gcc-c++)
make
make install 默認安裝目錄為:/usr/local/nginx/ 配置文件位置:/usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf 修改配置文件
cd /usr/local/nginx
./nginx 運行 若修改配置文件后 需要reload nginx 命令為:./nginx -s reload
第三步:使用nginx 搭建三臺服務器魂奥、 并搭建代理服務器菠剩,使用二級目錄代理前面提到的三臺服務器;
1.建立文件目錄三個耻煤;
/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;
#文件服務器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;
}
}
#文件服務器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;
}
}
#文件服務器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;
}
}
#代理服務器
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;
#請按照以下協(xié)議配置
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#請按照以下套件配置具壮,配置加密套件,寫法遵循 openssl 標準违霞。
#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;
}
#使用二級目錄代理三臺文件服務器嘴办,節(jié)約域名。; 注意 代理路徑 /买鸽,有無/會影響代理服務涧郊,是否傳遞目錄問題;
location /images/ {
proxy_pass http://localhost:8991/;
}
location /uploadfiles/ {
proxy_pass http://localhost:8992/;
}
location /wxweb/ {
proxy_pass http://localhost:8993/;
}
}
}
重啟ng服務: ./nginx -s reload
擴展學習:
查看nginx進程是否啟動:
ps -ef | grep nginx
啟動眼五,關閉妆艘,重啟,命令:
./nginx 啟動
./nginx -s stop 關閉
./nginx -s reload 重啟