图片服务器搭建
在博客园中想要引用一些图片时,发现qq空间的相册和github都不好用,因此就准备放一些图片到阿里云上,自己配置一个图片服务器,说是图片服务器,实际上就是用nginx做转发,让外面能访问到服务器的图片
安装nginx
安装nginx参照官网教程进行安装nginx官网
首先安装yum-utils
sudo yum install yum-utils
然后设置nginx的yum仓库
vim /etc/yum.repos.d/nginx.repo
添加如下内容
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
安装nginx
sudo yum install nginx
安装时注意验证fingerprint: 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
然后可以看到nginx已经被成功安装
$ nginx -v
nginx version: nginx/1.20.1
配置防火墙规则
nginx启动,通过 nginx -t 指令发现配置文件没问题的,并且执行curl localhost能够看到返回结果的情况下,使用外网ip地址登陆还是访问不了,这时需要查看是否为防火墙的配置问题
由于一直使用的iptables,因此首先把firewall关掉
# systemctl stop firewalld.service #停止firewall
# systemctl disable firewalld.service #禁止firewall开机启动
然后执行# firewall-cmd --state命令,返回结果为not running时,说明firewall已被停止
使用iptables首先需要安装服务:
# yum install iptables-services
之后修改配置文件,把需要的端口加进去
# vim /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [102733:17748787]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# -A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
这里注意要把reject位置放到accept的后面,否则reject后面的端口会被拦截,我就是在这里卡了好久。配好之后重启iptables服务
# service iptables restart
配置nginx文件
在nginx的server中添加这一行
location /url_to_images/{
root /location_of_images;
autoindex on;
}
这里有一个问题还没有解决,就是当访问接口时ip:port/images时,会在root的path中添加/images这一个后缀,因此就会访问/location_of_images/images路径,这个我通过把文件放入images文件解决的,后面需要研究一下如何去除这个后缀
配置好之后,执行
# nginx -s reload
然后访问相应url,就可以看到相应路径下的图片了