> 文章列表 > debian 部署nginx https

debian 部署nginx https

debian 部署nginx  https

我是flask 处理请求单进程, 差点意思 , 考虑先flask 在往下走

一:安装nginx

因为我是debian 系统,所以我的建议是直接

sudo apt-get install nginx

你也可以选择在官网下载, 但是我搭建ssl 的时候安装openssl非常的麻烦, 好想nginx 和 openssl 的版本要一致, 又不能使用yum, …
debian 部署nginx  https
输入Y
debian 部署nginx  https
这样就是安装好了
因为是默认的所以
你的程序应该在

/usr/sbin

里 如果没有 输入ps -ef | grep nginx 绿框里就是所在位置
debian 部署nginx  https
配置文件

/etc/nginx/

里如果没有 nginx -t, 绿框里就是所在位置
debian 部署nginx  https

访问ip 默认80端口 就可以看见下面的页面了
debian 部署nginx  https

二:配置

直接去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 域名;#将请求转成httpsrewrite ^(.*)$ https://$host$1 permanent;}}

这样就可以了


四:操作nginx

1、查看nginx安装目录

输入命令

ps -ef | grep nginx

返回结果包含安装目录

debian 部署nginx  https

2、查看nginx.conf配置文件目录

输入命令

nginx -t

返回结果包含配置文件目录
debian 部署nginx  https

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进程处理完当前的请求后退出,此命令只能由启动nginxlinux账户来执行。

2.reload信号,通知nginx重新载入配置文件nginx.conf。 除了使用reload外,nginx只会在启动时载入一次配置文件,之后对配置文件的修改不会实时对已经运行的nginx进程生效。

linuxkill命令也可以达到相同的作用,假设nginxpid123456,那么 kill -s QUIT 123456kill -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即可。