Centos7配置nginx
注:nginx的主配置文件在
/etc/nginx/nginx.conf
用户配置文件一般保存在/etc/nginx/conf.d/中
一、安装最新版nginx
1.卸载旧版nginx
sudo yum remove nginx -y
2.添加nginx官方仓库
sudo vim /etc/yum.repos.d/nginx.repo
写入以下内容(这是官方源配置)
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
3.安装nginx
稳定版:
sudo yum install nginx -y
最新版(可能不稳定)
sudo yum --enablerepo=nginx-mainline install nginx -y
4.启动与开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
5.检查运行状态与版本
sudo systemctl status nginx
nginx -v
(绿了就表示正常)
6.防火墙放行
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
二、配置nginx反向代理
(适用于以systemctl管理的nginx,即通过以上方法下载的)
准备工作
- 一个子域名,链接到目标服务器(例:
primordialblog.publicnote.top) - 可以顺利运行的nginx
1.新建配置文件
cd /etc/nginx/conf.d
# 创建子域名的文件夹
sudo mkdir primordialblog.publicnote.top
# 进到文件夹中
cd primordialblog.publicnote.top
# 创建配置文件
sudo vim reverse_proxy.conf
写入以下配置
server {
listen 80; # 公网访问端口,可以改成 8080 或其他
server_name your_domain.com; # ← 这里改成你的公网 IP 或域名
location / {
proxy_pass http://127.0.0.1:9003; # ← 这里改成本机服务端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
2.导入配置文件
# 返回到nginx根目录
cd /etc/nginx
# 导入刚刚创建的配置文件
sudo vim nginx.conf
在最后include /etc/nginx/conf.d/*.conf;下添加以下内容
# 导入所有二级配置文件
include /etc/nginx/conf.d/**/*.conf;
3.检查语法正确性
# 检查语法正确性
sudo nginx -t
若出现以下内容则说明语法正确无误
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
4.重新加载配置
sudo systemctl reload nginx
sudo systemctl restart nginx
5.确认配置文件已生效
sudo nginx -T | grep reverse_proxy.conf
如果能看到
# configuration file /etc/nginx/conf.d/primordialblog.publicnote.top/reverse_proxy.conf
说明加载成功
6.测试访问
试着访问你的页面,来验证配置是否成功
http://primordialblog.publicnote.top/
三、申请ssl证书(Https)
注:在此步骤之前,你应该先申请一个A类型的DNS记录(即通过http协议能访问到你的网站)
1.创建文件夹
cd 到etc/nginx/conf.d下,创建一个与你域名同名的文件夹,如:
sudo mkdir publicnote.top
2.给域名申请ssl证书
httpsok官网
证书管理>证书申请>填入你的域名
3.将记录填入域名解析
复制在httpsok网站拿到的记录值(最后一个)和主机记录(第二个),并填入相关服务商的域名解析处(httpsok网站有相关帮助)
4.点击验证
5.在httpsok网站证书管理页面点击右侧的下载按钮下载nginx相关的两个证书(zip)
将这个压缩包移至你创建的域名文件夹(/etc/nginx/conf.d/publicnote.top/)下,并解压
解压之后可选删除文件
sudo rm xxx.zip
6.cd回退到nginx的根目录
cd /etc/nginx
7.回到httpsok官网,选择自动部署。
点击上方的Nginx复制自动部署命令
在第二个自动部署命令前加上sudo(若不是root)
原:
curl -s https://get.httpsok.com/ | bash -s 4hYxxxxx
修改后:
curl -s https://get.httpsok.com/ | sudo bash -s 4hYxxxxx
复制到终端执行。
8.手动修改子配置文件
(即在第二阶段中创建的子配置文件)
server {
listen 80;
server_name primordialblog.publicnote.top;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name primordialblog.publicnote.top;
# 这里换成你自己的.pem和.key的路径
ssl_certificate /etc/nginx/conf.d/primordialblog.publicnote.top/primordialblog.publicnote.top.pem;
ssl_certificate_key /etc/nginx/conf.d/primordialblog.publicnote.top/primordialblog.publicnote.top.key;
# 最简化的 SSL 配置
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:9004;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
四、常用命令
1.重新加载配置(nginx角度下)
sudo nginx -t # 测试配置是否正确
sudo nginx -s reload
2.重新加载配置(systemctl角度下)
sudo nginx -t # 测试配置是否正确
sudo systemctl reload nginx

浙公网安备 33010602011771号