1.课题的背景和意义
由于编码过程中需要进行文件上传服务,文件上传后 需要有http资源的路径需要访问。原则上可以通过Apache 、iis 、nginx 等方式映射文件夹为网站即可实现。由于使用linux环境,nginx安装方便快捷,故采用nginx来实现;
域名资源宝贵,申请额外的域名流程繁琐;
需要多个文件服务器,使用同一个域名代理进行访问。
2.环境资料准备
linux服务器一台 centos
nginx 依赖包 gcc zlib zlib-devel pcre-devel openssl openssl-devel 等;
nginx 安装包 http://nginx.org/en/download.html
3.安装、设计与实现
设计思路:
第一步 安装依赖包: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;
#请按照以下协议配置
#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;
}
#使用二级目录代理三台文件服务器,节约域名。; 注意 代理路径 /,有无/会影响代理服务,是否传递目录问题;
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 重启