我是flask 处理请求单进程, 差点意思 , 考虑先flask 在往下走
一:安装nginx
因为我是debian 系统,所以我的建议是直接
sudo apt-get install nginx
你也可以选择在官网下载, 但是我搭建ssl 的时候安装openssl非常的麻烦, 好想nginx 和 openssl 的版本要一致, 又不能使用yum
, …
输入Y
这样就是安装好了
因为是默认的所以
你的程序应该在
/usr/sbin
里 如果没有 输入ps -ef | grep nginx
绿框里就是所在位置
配置文件在
/etc/nginx/
里如果没有 nginx -t
, 绿框里就是所在位置
访问ip 默认80端口 就可以看见下面的页面了
二:配置
直接去nginx.conf
开始配置
在 http 那个字典下 添加你的server
配置
server {
listen 8004;
server_name localhost;
access_log 针对这个接口存放文件的路径(一定要有);
location / {
proxy_pass http://ip:端口号/; (P1注释)
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
P1: 我前后端是没有分离的。所以是这么写, 如果前后端分离 ,要设置好调用的位置 例如:
location /static {
root /usr/by3.0/;
}
三:https
搞https 之前你先要有2个文件。
一个是 .crt
另一个是 .key
。 也有课可能是 .pem
和.key
文件
如果要是 某某云可以直接申请。具体流程我不清楚
将这俩个文件放到你觉得你能找到的位置
例如 :/opt/ssl_file/
下面这个写法我要没记错是版本小于15 才可以, 切记切记
server {
#监听443端口
listen 443;
#你的域名
server_name 域名;
ssl on;
#ssl证书的pem文件路径
ssl_certificate /opt/ssl_file/xxx.crt;
#ssl证书的key文件路径
ssl_certificate_key /opt/ssl_file/xxx.key;
location / {
proxy_pass http://ip:端口/;
}
}
server {
listen 8002;
server_name 域名;
#将请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
}
}
这样就可以了
四:操作nginx
1、查看nginx安装目录
输入命令
ps -ef | grep nginx
返回结果包含安装目录
2、查看nginx.conf配置文件目录
输入命令
nginx -t
返回结果包含配置文件目录
3、启动
启动nginx系统方式:
(1)命令
nginx -c /usr/local/nginx/conf/nginx.conf
说明:-c 参数指定运行nginx系统的自定义配置文件。
若加:使用自定义配置文件。实例请参见下文停止
nginx系统的方式贴图。
若不加:使用默认的nginx.conf(一般位于/usr/local/conf/nginx.conf,具体以实际情况为准)
(2)shell脚本
新建start.sh文件,输入内容:
nginx -p
pwd
/… -c conf/nginx.conf
需要启动时,执行./start.sh 即可
4、停止
关闭nginx系统方式:
(1)命令
当nginx
启动后,可以使用-s
参数向nginx
管理进程(即master
进程)发送信号来控制nginx
:
nginx -s signal
其中,signal可以是以下值:
[1] stop
:快速关闭
[2] quit
:安全关闭
[3] reload
:重载配置文件
[4] reopen
:重新打开一个log文件,主要用于日志切割
注意:
1.quit
信号,通知nginx
等待worker
进程处理完当前的请求后退出,此命令只能由启动nginx
的linux
账户来执行。
2.reload
信号,通知nginx
重新载入配置文件nginx.conf
。 除了使用reload
外,nginx
只会在启动时载入一次配置文件,之后对配置文件的修改不会实时对已经运行的nginx
进程生效。
linux
的kill
命令也可以达到相同的作用,假设nginx
的pid
是123456
,那么 kill -s QUIT 123456
和 kill -s HUP 123456
这两条命令和前面quit、reload
的作用相同。
(2)shell脚本
新建stop.sh
文件,输入内容:
nginx -p
pwd
/… -c conf/nginx.conf -s quit
需要关闭系统时,执行./stop.sh即可
5、重载配置
重新加载配置文件
(1)命令
nginx -s reload
注意:reload重新加载的配置,仍为启动nginx系统时运行的配置文件(应用场景:可能会因业务需求调整,对配置文件做修改,估需重新加载之,也称热部署)
(2)shell脚本
新建reload.sh
文件,输入内容:
nginx -p
pwd
/… -c conf/nginx.conf -s reload
需要重新加载配置文件时,执行./reload.sh即可。
6、验证配置
不验证 配置出问题了, 线上就糟糕了 同志
验证配置文件方式
(1)命令
验证默认配置文件
nginx -t
验证自定义配置文件
nginx -t -c /home/test/conf/nginx.conf
(2)shell脚本
新建testconf.sh
,输入内容:
nginx -p
pwd
/… -c conf/nginx.conf -t
需要验证配置文件时,执行./testconf.sh
即可。