开源实例之Nginx
前言
本篇是对《开源实例之多项目部署方案》中 Nginx 部分的展开。
Nginx的介绍
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.
Nginx 是轻量级的 HTTP 和反向代理 WEB 服务器。它资源占用少、高并发能力强,在互联网项目中广泛应用。Nginx 也就是常说的 LNMP 架构中的 N。
Nginx的应用
本系列的开源项目实例容器,由 Nginx 协助完成自动重建功能。主要利用的特性是,容器未创建或已停止时,HTTP 状态码返回 502,由此做重建分发。
以 WordPress 项目为例:
分发流程
访问落地页时,如果容器正在运行则正常展示;如果容器未运行,则跳至分发页创建容器,然后回跳至落地页。
分发配置
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
listen 80;
listen 443 ssl http2;
server_name example.dujun.space;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename) {
proxy_pass http://webman;
}
}
ssl_certificate /root/.acme.sh/dujun.space/fullchain.cer;
ssl_certificate_key /root/.acme.sh/dujun.space/dujun.space.key;
ssl_trusted_certificate /root/.acme.sh/dujun.space/ca.cer;
}
项目配置
server {
listen 80;
listen 443 ssl http2;
server_name wordpress.dujun.space;
error_page 502 = https://example.dujun.space/of/wordpress;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET';
location / {
proxy_pass http://127.0.0.1:10111;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
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;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_redirect default;
}
ssl_certificate /root/.acme.sh/dujun.space/fullchain.cer;
ssl_certificate_key /root/.acme.sh/dujun.space/dujun.space.key;
ssl_trusted_certificate /root/.acme.sh/dujun.space/ca.cer;
}
后记
标签: 开源实例