Nginx 服务器配置



CentOS 7.5 环境下安装 Nginx

记录 Linxu 云服务器各种环境部署的点点滴滴~

一、下载 Nginx

1.1 安装包安装 Nginx

​下载 Nginx​

安装步骤自行百度即可,比如菜鸟教程跟着步骤一步一步走,但是相对麻烦

1.2 包管理工(yum)具直接安装 Nginx



安装
​yum install nginx​



使用命令
​nginx # 启动​



使用平台的公网 ip 即可看看是否有界面,有的话就安装成功




它会默认产生界面,如果你想要它显示指定产生的网站,需要手动配置


二、进入安装目录,修改服务器配置



进入目录
​cd /etc/nginx​



打开 nginx.conf 的配置文件 和 nginx.conf.default,改一下网页显示的默认路径即可



vim nginx.conf # 要配置的第一个文件

vim nginx.conf.default

# 然后输入 i,表示插入模式,之后的往下看


或者将如下两个文件拖至本地
CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_服务器



找到 Server 一项



CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_服务器_02


  1. 为了保险起见,两个文件都稍微配置一下即可
  2. 比如我的静态 html 文件放在 root 目录里

`我就可以填写 root:  /root/html`  # 这里一定要填写目录,建议写 `绝对路径`  

index: index.html # 这里填写你要第一展示的页面,最好一个都不要改


我的目录结构如下
CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_反向代理_03



然后重启 Nginx
​nginx -s reload​



大功告成,成功看到了我自己编写的界面
CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_反向代理_04



三、Nginx 命令操作



服务器重启命令
​nginx -s reload​



启动服务器
​nginx​



其他的服务遇到了再添加8,哈哈哈



四、nginx 配置 https 服务

​nginx 配置 https 服务参考​

4.1 为你的服务器申请 https 证书


我的服务器是在 腾讯云购买的,所以就可以直接在腾讯云申请的,所以我自然是在 腾讯云下申请的免费 https 的证书。申请好了下载下来是这样的


CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_反向代理_05

点开 nginx ,这两个文件等会要通过 xftp 上传上去的

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_服务器_06

4.2 打开 linux 服务器中 nginx 的目录下

一般是通过 yum 或者 apt-sudo 安装的 nginx 的目录会在 ​​/etc/nginx​​ 中,然后打开我们的 ftp 工具,进入到 /etc/nginx 目录下,将上面的 两个文件上传上去

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_反向代理_07

4.3 文件上传了之后,回到终端


  1. 输入 ​​vim nginx.conf​
  2. 然后输入 i ,进入文本插入模式
  3. 把 端口为 443 部分的配置全部打开

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_nginx_08

4. 改完这些配置之后,按下 esc

5. 然后输入 :wq 表示退出并保存,然后按下回车即可

6. 然后我们重启 nginx : ​​nginx -s reload​

7. 然后访问我们的服务器

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_nginx_09

成功了!!!

4.4 http 强制转换 https

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_反向代理_10

之前在群里资讯过大佬。大佬说,http 转 https 不建议使这样处理,应该重写

CentOS 7.5 环境下搭建 Nginx 静态服务器环境以及常用配置_nginx_11

rewrite ^(.*)$  https://$host$1 permanent;

五、Nginx 反向代理配置 (2020 5 24 更新)

反向代理是这个什么东西,网上有很多科普,大家可以简单了解一下即可。

以我个人的理解来说


就是把其他端口或者服务器的服务反向代理至某个特定的端口,这样的话,别人就感觉不到这其实是其他地方地方提供的一个服务,这么说可能不是很好理解。


就以我搭建的项目来说,我在服务器上 127.0.0.1:2999 处开启另一个 http 服务,也就说,这个服务我可以在外网以 www.xxxx.xxx:2999 直接访问。但是我不希望别人通过端口访问我的项目,我可以让别人通过路径访问我特定的项目,我就可以在 nginx.conf 做如下配置

  1. 添加指定的服务,并配置服务地址
    我们定义的服务名称为 node_server, 它代表的就是 127.0.0.1:3030 上的服务
# 这个服务要写在 nginx.conf 的 server 外面
upstream node_server {
server 127.0.0.1:3030;
}
  1. 反向代理服务
    我们在 server 路径下,配置 location,用来指定我们服务的访问路径的
# 配置要访问的路径
location /shop/ {
proxy_pass http://node_server/; # 配置代理的服务
# 一般情况不用加下面的,如果你的项目是前后端分离的,就要加下面的这些
proxy_read_timeout 600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#解决https请求http资源不可用的情况
add_header Content-Security-Policy upgrade-insecure-requests;
# expires定义用户浏览器缓存的时间为1天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
expires 30d;
# 指定项目资源路径
root /home/node/vue_shop_server/dist;
index index.html index.htm;
# try_files $uri $uri/ /index.html =404;
}

# 解决代理的资源无法访问的情况
location ~ .*\.(js|css|img|png|jpg)$ {
proxy_pass http://127.0.0.1:3030;
}