debian 部署nginx & https

我是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进程处理完当前的请求后退出,此命令只能由启动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即可。

五:proxy_pass

规则如下:
nginx中配置location代理转发规则的时候不同写法对应不同转发规则。

如果proxy_pass使用了URI,当传送请求到后端服务器时,规范化以后的请求路径与配置中的路径的匹配部分将被替换为指令中定义的URI。

如果proxy_pass没有使用URI,传送到后端服务器的请求URI一般客户端发起的原始URI。

访问地址:http://localhost/api/abc.html

以下是几种常见的匹配情况:

1

location /api/ {
proxy_pass http://127.0.0.1:8080/;
}

这样会代理到http://127.0.0.1:8080/abc.html

1 端口后带/

location /api/ {
proxy_pass http://127.0.0.1:8080/;
}

这样会代理到http://127.0.0.1:8080/abc.html

2 端口后不带/

location /api/ {
proxy_pass http://127.0.0.1:8080;
}

这样会代理到http://127.0.0.1:8080/api/abc.html

3 端口后带接口+/

location /api/ {
proxy_pass http://127.0.0.1:8080/api/;
}

这样会代理到http://127.0.0.1:8080/api/abc.html

4 端口后带接口

location /api/ {
proxy_pass http://127.0.0.1:8080/api;
}

这样会代理到http://127.0.0.1:8080/apiabc.html

5 uri不带/ ,location 所拦截的接口也不带

location /api {
proxy_pass http://127.0.0.1:8080/api;
}

这样会代理到http://127.0.0.1:8080/api/abc.html

6 uri带/ ,location 所拦截的接口也不带

location /api {
proxy_pass http://127.0.0.1:8080/;
}

这样会代理到http://127.0.0.1:8080//abc.html

7 都不带/

location /api {
proxy_pass http://127.0.0.1:8080;
}

这样会代理到http://127.0.0.1:8080/api/abc.html
再贴个官图
在这里插入图片描述

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值