Nginx如何安裝設定
简介
Nginx 的安装:
# CentOS yum install nginx; # Ubuntu sudo apt-get install nginx; # Mac brew install nginx;
一般可以在/etc/nginx/nginx.conf
中配置,启动参数为:
# 启动 nginx -s start; # 重新启动,热启动,修改配置重启不影响线上 nginx -s reload; # 关闭 nginx -s stop; # 修改配置后,可以通过下面的命令测试是否有语法错误 nginx -t;
-s
,signal,意思就是向 nginx 发送start|reload|stop
命令,还是很好理解的。先看一个最简单的nginx.conf
配置:
events { # 需要保留这一个段落,可以为空 } http { server { listen 127.0.0.1:8888; location / { root /home/chenya/test/; } } }
启动后,访问htttp://127.0.0.1:8888
,如果/home/chenya/test/
下有index.html
文件就会展示index.html
的内容,否则返回404
。
Nginx 配置一个 Web 服务器
以下对配置 Web 服务器的参数做简单说明,包括如何配置端口、域名,如何处理请求,如何响应请求。
1、 虚拟主机和请求的分发
域名和端口的配置
listen 127.0.0.1:8000; listen *:8000; listen localhost:8000; # IPV6 listen [::]:8000; # other params listen 443 default_serer ssl; listen 127.0.0.1 default_server accept_filter=dataready backlog=1024
主机名配置
server_name www.chenya.site chenya.site server_name *.chenya.com server_name ~^\.chenya\.com$
URI 匹配
location = / { # 完全匹配 = # 大小写敏感 ~ # 忽略大小写 ~* } location ^~ /images/ { # 前半部分匹配 ^~ # 可以使用正则,如: # location ~* \.(gif|jpg|png)$ { } } location / { # 如果以上都未匹配,会进入这里 }
2、 文件路径的定义
根目录设置
location / { root /home/chenya/test/; }
别名设置
location /blog { alias /home/chenya/www/blog/; } location ~ ^/blog/(\d+)/([\w-]+)$ { # /blog/20141202/article-name # -> /blog/20141202-article-name.md alias /home/chenya/www/blog/$1-$2.md; }
首页设置
index /html/index.html /php/index.php;
重定向页面设置
error_page 404 /404.html; error_page 502 503 /50x.html; error_page 404 =200 /1x1.gif; location / { error_page 404 @fallback; } location @fallback { # 将请求反向代理到上游服务器处理 proxy_pass http://localhost:9000; }
try_files 设置
try_files $uri $uri.html $uri/index.html @other; location @other { # 尝试寻找匹配 uri 的文件,失败了就会转到上游处理 proxy_pass http://localhost:9000; } location / { # 尝试寻找匹配 uri 的文件,没找到直接返回 502 try_files $uri $uri.html =502; }
Nginx 配置反向代理服务器
反向代理(reserve proxy)方式是指用代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络中的上游服务器,并将上游服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外的表现就是一个 Web 服务器。
Nginx 具备超强的高并发高负载能力,一般会作为前端的服务器直接向客户端提供静态文件服务;而业务一般还包含一些业务逻辑需要 Apache、Tomcat 等服务器来处理,故通常 Nginx 对外表现即为静态 Web 服务器也是反向代理服务器。
缺点是增加了一次请求的处理时间,优点是降低了上游服务器的负载,尽量将压力放在 Nginx 服务器上。
1、负载均衡配置
upstream,定义一个上游服务器集群
upstream backend { # ip_hash; server s1.chenya.com; server s2.chenya.com; } server { location / { proxy_pass http://backend; } }
2、反向代理
proxy_pass 将请求转发到有处理能力的端上,默认不会转发请求中的 Host 头部
location /blog { prox_pass http://localhost:9000; ### 下面都是次要关注项 proxy_set_header Host $host; proxy_method POST; # 指定不转发的头部字段 proxy_hide_header Cache-Control; proxy_hide_header Other-Header; # 指定转发的头部字段 proxy_pass_header Server-IP; proxy_pass_header Server-Name; # 是否转发包体 proxy_pass_request_body on | off; # 是否转发头部 proxy_pass_request_headers on | off; # 显形/隐形 URI,上游发生重定向时,Nginx 是否同步更改 uri proxy_redirect on | off; }
一个简单的例子,Node.js
一个十分常见的需求:处理请求,如果是静态文件,Nginx 直接返回,否则交给 Node 服务器处理。首先创建了一个 Node 服务器:
const http = require('http'); http.createServer((req, res) => { res.end('hello world'); }).listen(9000);
任何请求过来都返回hello world
,简版的 Nginx 配置如下,
events { # 这里可不写东西 use epoll; } http { server { listen 127.0.0.1:8888; # 如果请求路径跟文件路径按照如下方式匹配找到了,直接返回 try_files $uri $uri/index.html; location ~* ^/(js|css|image|font)/$ { # 静态资源都在 static 文件夹下 root /home/chenya/www/static/; } location /app { # Node.js 在 9000 开了一个监听端口 proxy_pass http://127.0.0.1:9000; } # 上面处理出错或者未找到的,返回对应状态码文件 error_page 404 /404.html; error_page 502 503 504 /50x.html; } }
首先 try_files,尝试直接匹配文件;没找到就匹配静态资源;还没找到就交给 Node 处理;否则就返回 4xx/5xx 的状态码。
测试语法
nginx -t
以上是Nginx如何安裝設定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

啟動 Nginx 服務器需要按照不同操作系統採取不同的步驟:Linux/Unix 系統:安裝 Nginx 軟件包(例如使用 apt-get 或 yum)。使用 systemctl 啟動 Nginx 服務(例如 sudo systemctl start nginx)。 Windows 系統:下載並安裝 Windows 二進製文件。使用 nginx.exe 可執行文件啟動 Nginx(例如 nginx.exe -c conf\nginx.conf)。無論使用哪種操作系統,您都可以通過訪問服務器 IP
