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 域名;
		#将请求转成https
		rewrite ^(.*)$ 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即可。

五: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
再贴个官图
debian 部署nginx & https文章来源地址https://www.toymoban.com/news/detail-480642.html

到了这里,关于debian 部署nginx & https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx代理https请求的操作过程

    理论很简单,过程很曲折,版本适配的问题要小心。 场景: 要和前端进行联调,我本地后端用了https,证书是自制的,主要是页面里面有一些oauth2认证的地方,需要跳转。 比如https://aaa.com/profile.html,认证通过之后要跳转到这个页面。 前端的电脑,直接访问后台的页面都是正

    2024年01月23日
    浏览(83)
  • flask请求时间记录和日志处理

    在Python中,如果需要记录一个函数执行的时间,可以通过装饰器的方式来实现,避免在每个函数中进行重复编码。 在logging日志处理中,每次日志输出都是一个全新的 LogRecord 事件,所以每次的输出之间是相互不关联的。但是在实际的项目中,我们希望能够在日志中获取每一次

    2024年02月22日
    浏览(47)
  • Nginx实现本地http转https请求

    目录 前言: 一、安装nginx 二、安装OpenSSL          1、下载OpenSSL:          2、配置环境变量:                   2.1:配置环境变量,OpenSSL_HOME                    2.2:配置path  三、生成https证书          1、创建ssl文件夹用于存放证书。创建私钥 (建议使用系统窗口,

    2024年01月20日
    浏览(46)
  • flask、uwsgi、nginx 部署

    1.  安装: 2. 基于flask编写例子hello.py,然后保存在/opt/txt/目录下: 3. 编写uwsgi的配置文件uwsgi.ini,如下所示: 4. 修改nginx配置文件,在/etc/nginx/nginx.conf  注释掉/etc/nginx/nginx.conf的第一行——user nginx;并换成user root; 5. 启动uwsgi: 6. 启动nginx:

    2024年02月15日
    浏览(47)
  • 【nginx】配置将HTTPS请求转换成HTTP

    要将HTTPS请求转换为HTTP请求,可以在Nginx的配置文件中添加以下配置: 打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 。 在 server 块中添加以下配置,将HTTPS请求转发到后端的HTTP服务: 将 yourdomain.com 替换为你的域名, /path/to/your/ssl_certificate.crt 和

    2024年02月10日
    浏览(51)
  • nginx 如何将 https 请求转发到 http

    网站之前是 https 的,通过 nginx 设置好了,现在不想用 https 了,但发散到外界的一些网址还是 https 的,此时只能通过 nginx 去转发 https 请求到 http 才能实现之前的链接能正常访问。 具体设置如下: https 的其它设置不需要动,只需要在 server 字段添加一条:

    2024年02月11日
    浏览(59)
  • tengine/nginx https请求 转发 http upstream

    当前的互联网应用基本都要支持https协议,而当浏览器头通过https协议将请求发到到负责负载的nginx后,会由当前nginx再以http协议向后端upstream进行请求,之所以这么做是因为https协议的安全性也带来的额外的性能消耗。而源端基本都是在一个内网里面的,对于通讯协议的安全性

    2024年01月23日
    浏览(46)
  • Nginx接收Http协议请求转发使用Https协议

    公司使用阿里的apigateway,规定不太友好,同是SIT环境,A系统的SIT1环境居然不能调用B系统的SIT2环境的接口。因为各个系统之间部署的SIT环境数量不同A系统可能只有1套,B系统可能有8套,这样的话,可能会随时切换调用B系统的环境,管理员不允许,于是想着用Nginx做下转发。

    2024年02月08日
    浏览(64)
  • nginx反向代理https域名时,请求报错502问题排查

    微信公众号:运维开发故事,作者:冬子先生 一. 现象 在使用nginx反向代理后端服务器的时候,因为配置的是域名,导致HTTPS 请求转发失败,报 SSL 错误,js 报 502 img img 二. 排查过程 1、查看nginx日志,发现报502,但是本地curl upstream中的后端域名是可以正常通的 img 2、查看后端

    2024年02月11日
    浏览(42)
  • nginx+flask+uwsgi部署遇到的坑

    centos8 uWSGI 2.0.22 gmssl 3.2.2 nginx version: nginx/1.18.0 项目目录: 如果lsof -i:8000查看的时候显示进程被nginx使用才是正常的,如果不是就是你的nginx有问题 1.查看网络是否通畅 2.查看端口是否通畅 3.nginx是否正常运行(查询配置的端口具体是否被nginx监听中) 4.查看ini配置中的日志具体

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包