差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
itwiki:nginx-practice [2021/09/18 12:57] – [NGINX 实践] ovwx@live.io | itwiki:nginx-practice [2024/01/03 12:09] (当前版本) – [Nginx 实践] ovwx@live.io | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | ====== |
> for Nginx v1.20.1 or Later | > for Nginx v1.20.1 or Later | ||
- | ===== 最小化 nginx 静态站配置 ===== | ||
- | <file site-xxx.conf> | + | 本实践崇尚快速落地部署,因此整理一些最小化的安装及部署配置,通常情况下,将配置文件复制过去修改部分参数就可以使用。该部分配置为NGINX站点配置,Linux环境下,文件通常保存在:''/ |
- | server { | + | ===== Nginx安装 ===== |
- | listen 80; | + | |
- | listen [::]:80; | + | |
- | server_name www.xyz.com; | + | |
- | root /var/www/app-path/ | + | [[https://nginx.org/en/linux_packages.html|nginx.org]] |
- | index index.html | + | |
- | location / { | + | |
- | } | + | |
- | } | + | |
- | </ | + | 我们可以将NGINX的软件源添加到系统中,然后通过系统自带的软件包管理系统,如YUM, |
- | 通常指定网站根目录及首页即可 | + | 查找系统上已经安装的NGINX及相关模块 |
+ | < | ||
+ | rpm -qa | grep nginx | ||
+ | </ | ||
+ | 以CentOS为例安装Nginx相关模块 | ||
- | ===== Nginx + 反向代理 + SSL ===== | + | < |
+ | yum search nginx | ||
+ | yum install nginx-mod-ModName | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 最小化 nginx 静态站配置 | ||
<file site-xxx.conf> | <file site-xxx.conf> | ||
+ | |||
server { | server { | ||
listen 80; | listen 80; | ||
listen [::]:80; | listen [::]:80; | ||
- | server_name www.xxx.com; | + | server_name www.xyz.com; # server_name |
- | return 301 https://$server_name: | + | |
- | } | + | |
- | server { | + | root /var/www/app-path/ |
- | listen | + | |
- | listen | + | |
- | server_name c.ezua.com; | + | |
- | charset utf-8; | + | |
- | + | ||
- | # ssl配置 | + | |
- | ssl_protocols TLSv1.1 TLSv1.2; | + | |
- | ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256: | + | |
- | ssl_ecdh_curve secp384r1; | + | |
- | ssl_prefer_server_ciphers on; | + | |
- | ssl_session_cache shared: | + | |
- | ssl_session_timeout 10m; | + | |
- | ssl_session_tickets off; | + | |
- | ssl_certificate | + | |
- | | + | |
- | + | ||
- | root / | + | |
location / { | location / { | ||
- | proxy_ssl_server_name on; | ||
- | proxy_pass https:// | ||
- | proxy_set_header Accept-Encoding ''; | ||
- | sub_filter " | ||
- | sub_filter_once off; | ||
- | } | ||
- | | ||
- | |||
- | location / | ||
- | proxy_redirect off; | ||
- | proxy_pass http:// | ||
- | proxy_http_version 1.1; | ||
- | proxy_set_header Upgrade $http_upgrade; | ||
- | proxy_set_header Connection " | ||
- | proxy_set_header Host $host; | ||
- | # Show real IP in v2ray access.log | ||
- | proxy_set_header X-Real-IP $remote_addr; | ||
- | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
} | } | ||
} | } | ||
行 74: | 行 41: | ||
</ | </ | ||
- | 其中: | + | 通常指定网站根目录及首页即可 |
- | - 第一个 location 是通用路径反代,获取之后数据之后对部分内容进行替换。'' | + | |
- | - 使用了高级功能的一些网站可能需要进行传递 Upgrade,以及 Connection 头部,如:WebSocket | + | |
- | - X-Real-IP 多用于代理服务器,向真实服务器传递远程客户端IP地址 | + | |
- | - Server Listen 80 端口,并使用301重定向 | + | |
- | - X-Forwarded-For XFF头不是标准HTTP头部 | + | |
- | - 第二个 location 可以设置的长一点,这样可以把该路径隐藏在转发的网站中 | + | |
- | + | ||
- | ===== Nginx + PHP-fpm + SSL ===== | + | |
- | + | ||
- | ==== 预装PHP及PHP-FPM环境 ==== | + | |
- | + | ||
- | ==== 配置PHP fastcgi 转发 ==== | + | |
- | + | ||
- | <file site-php-fpm.conf> | + | |
- | + | ||
- | server { | + | |
- | listen | + | |
- | listen | + | |
- | server_name www.c.ezua.com; | + | |
- | charset utf-8; | + | |
- | + | ||
- | # ssl配置 | + | |
- | ssl_protocols TLSv1.1 TLSv1.2; | + | |
- | ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256: | + | |
- | ssl_ecdh_curve secp384r1; | + | |
- | ssl_prefer_server_ciphers on; | + | |
- | ssl_session_cache shared: | + | |
- | ssl_session_timeout 10m; | + | |
- | ssl_session_tickets off; | + | |
- | ssl_certificate / | + | |
- | ssl_certificate_key / | + | |
- | + | ||
- | #root / | + | |
- | root / | + | |
- | index index.php; | + | |
- | location ~ \.(php|php5).* { | + | |
- | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | + | |
- | fastcgi_pass unix:/ | + | |
- | include fastcgi_params; | + | |
- | } | + | |
- | + | ||
- | location / { | + | |
- | + | ||
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | </ | + | |
- | + | ||
- | 在配置方面与普通的反代没有区别,'' | + | |
- | ===== Nginx + 负载均衡 ===== | ||
- | 暂未涉及 | ||
===== Nginx location 及访问控制 ===== | ===== Nginx location 及访问控制 ===== | ||
行 162: | 行 77: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | **对指定路径进行HTTP BASIC认证** | ||
+ | < | ||
+ | location / { | ||
+ | auth_basic " | ||
+ | auth_basic_user_file / | ||
+ | # | ||
+ | } | ||
+ | </ | ||
+ | 需要注意认证文件位置,否则会一直无法认证 | ||
+ | |||
+ | 使用以下命令生成所需的PASSWORD文件 | ||
+ | < | ||
+ | printf " | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 其他范例 ===== | ||
+ | |||
+ | * 用作代理服务器 [[itwiki: | ||
+ | * 搭建 dokuwiki [[itwiki: | ||
+ | * 用于支持PHP的配置 [[itwiki: | ||