资讯专栏INFORMATION COLUMN

linux部署Nginx以及简易图片服务器搭建

soasme / 2803人阅读

摘要:与主要区别在于如何解释后面的,这会使两者分别以不同的方式将请求映射到服务器文件上。实例如果一个请求的是时,服务器将会返回服务器上的的文件。

Linux 部署nginx

环境: 百度云实例 CentOS / 7.5 x86_64 (64bit)

安装依赖

yum install gcc

yum install pcre-devel

yum install zlib zlib-devel

yum install openssl openssl-devel

prce-devel 作用: nginx的rewrite伪静态匹配规则用到正则,pcre就用来干这个。

zlib 是一个压缩和解压缩模块

SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输

下载nginx tar包

// 创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
// 下载 tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

安装nginx

//进入nginx目录 
cd /usr/local/nginx/nginx-1.13.7
//使用默认配置
./configure
//make make install
make
make install

安装好后的目录如下

conf 目录下的 nginx.conf 是nginx的配置文件

sbin 目录下 执行 ./nginx 启动服务

一些常用命令

测试配置文件 /ningx/sbin/nginx -t

启动命令 安装路径下的 /nginx/sbin/nginx

停止命令 安装路径下的 /nginx/sbin/nginx -s stop

重启命令 安装路径下的 .nginx/sbin/nginx -s reload

查看进程命令 ps -ef | grep nginx

平滑重启 kill -HUP Nginx主进程号

Nginx 映射本地目录

通过反向代理来做一个简易的图片服务器

大致步骤:

取消注释开启日志,便于出现问题排查

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

修改 nginx/conf/nginx.conf, 存放图片的目录被我放在了 /root/pics

server {
    listen       80;
    server_name  182.61.41.64;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location ^~ /images/ {
        alias   /root/pics/;
        index   1.txt;
    }

过程当中踩到的坑:

访问资源出现403 forbidden,查看日志出现错误:

403 forbidden (13: Permission denied)  Nginx 403 forbidden forbidden 403 Permission denied

原因是目录权限不够,解决办法: 修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决。

chmod -R 777 /data

chmod -R 777 /data/www/

root与alias主要区别——在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

root的处理结果是:root路径+location路径
alias的处理结果是:使用alias路径替换location路径
alias是一个目录别名的定义,root则是最上层目录的定义。
还有一个重要的区别是alias后面必须要用"/"结束,否则会找不到文件的,而root则可有可无。

//root实例:
location ^~ /t/ {
     root /www/root/html/;
}
//如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。
//alias实例:
location ^~ /t/ {
     alias /www/root/html/new_t/;
}
//如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
注意:

使用alias时,目录名后面一定要加"/"。

alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。

alias只能位于location块中。(root可以不放在location中)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40160.html

相关文章

  • Hexo快速搭建静态博客并实现远程VPS自动部署

    摘要:提示,如果需要通过实现服务器自动化部署,推荐使用会更方便一些然后在目录初始化本地仓库并提交到这时候上已经有我提交的代码了。再新建一个文件处理部署相关脚本,内容如下将新增的与两个文件到服务器。 这篇文章将如何搭建hexo,以及如何通过git webhooks实现远程vps的自动部署 这篇文章适合的条件: 简单的用于个人博客、公司博客展示,hexo的定位是静态博客,要实现动态服务器的功能...

    keke 评论0 收藏0
  • DevOps 从零开始-仓库环境搭建(Docker,Nginx,Nexus,Gitlab,免费Htt

    摘要:本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括,,,,。目标硬盘挂载阿里云额外购买的硬盘服务,需要仅挂载后才可以正常使用。域名代理免费代理的域名通过阿里云域名解析暴露到外网。 本文章用于描述如何从零开始进行阿里云仓库的搭建,以及过程中遇到的相关问题。涉及的内容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...

    FWHeart 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<