linux安装nginx搭建服务并实现文件服务器和代理服务器配置
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 重启
参考文献:
http://nginx.org/
http://nginx.org/en/docs/