配置nginx服务器
首先我们拿到一台服务器时,并不知道系统是否存在Nginx我们可以在Linux命令行执行如下命令查看
find / -name nginx*
find / -name nginx* 查找所有名字以nginx开头的文件或者目录,我们看看系统里面都有哪些文件先,这样可以快速定位到我们想要修改的文件,当然我们也可以单刀直入式的直接搜索 find / -name nginx.conf
来快速定位。
官方文档:使用CentOS系统镜像部署Nginx服务器
1, 执行如下命令添加CentOS 7系统的Nginx yum资源库。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
注意:
Nginx版本不断更新,可能导致此命令执行失败。
届时请在 http://nginx.org/packages/centos/7/noarch/RPMS 路径下获取最新的Nginx软件包,替换nginx-release-centos-7-0.el7.ngx.noarch.rpm字段。
2, 执行如下命令安装Nignx服务。
sudo yum install -y nginx
3, 刚安装的Nignx不会自行启动,执行如下命令启动Nignx。
sudo systemctl start nginx.service
4, 执行如下命令设置开机自启动。
sudo systemctl enable nginx.service
配置好后可以使用命令systemctl status nginx
查看状态,如下图:
部署后通过公网ip无法访问
- 原因:默认是80端口。公网IP,80端口没开放
- 解决方法:网页控制台中为安全组添加
入方向规则
,如下图
如若修改端口,或者使用ssl-443端口,都需要把相应端口添加到入方向规则
配置网站访问目录
nginx安装好后,安装目录在/etc/nginx
,配置文件为/etc/nginx/nginx.conf
。
shell命令下使用vim /etc/nginx/nginx.conf
即可对其进行编辑。查看内容的话使用cat /etc/nginx/nginx.conf
不习惯vi/vim命令的,也可以在windows下使用xftp工具(有免费版Free for Home/School),在windows侧进行编辑。
- 为所有网站设置一个根目录
mkdir -p /data/www
在根目录下创建/data/www目录。 - 设置nginx服务器指向这个根目录。
编辑nginx.conf文件,内容如下:
server {
listen 80 default_server;
# listen [::]:80 default_server;
server_name _;
root /data/www;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
- 重启nginx服务
systemctl restart nginx
这时候在浏览器中输入云服务器的公网ip地址发现报错,是因为/data/www目录下无index.html启动项。通过如下命令
cd /data/www/
echo huawei cloud say hello > index.html
在data/www/目录下创建了一个内容为huawei cloud say hello的极简index.html页面,这个时候输入公网ip即可顺利打开页面。
其它网站只需要放到data/www/目录下即可,通过:公网ip/对应目录
,即可访问。
nginx配置ssl证书实现https访问
上述使用CentOS系统镜像部署Nginx服务器
提到了域名解析和证书安装的内容。
申请证书
注意申请nginx版本,最终是一个pem文件、一个key文件。
- 阿里云上通过域名可以免费申请有效期3个月的证书。
- 华为云没找到免费证书途径,购买还是挺贵的。
PS:公司帮忙通过阿里云申请了个3个月证书,并提供了个可用域名。苦笑!
配置ssl证书
- /etc/nginx/下创建cert文件夹,并把上述两个证书文件(pem和key)放进去。笔者这部分功能通过xftp在windows侧来操作的。
- 配置nginx.conf文件
把Settings for a TLS enabled server.下部的注释取消,并适当修改部分内容以匹配自己服务器的配置,如下所示。
# Settings for a TLS enabled server.
#
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name 因为我有域名,所以填的域名,注意不带协议头https,没有域名只能填ip;
root /data/www;
# pem和key的路径最好用全路径
ssl_certificate "/etc/nginx/cert/xxxx.pem";
ssl_certificate_key "/etc/nginx/cert/xxxx.key";
ssl_session_cache shared:SSL:1m;
ssl_se