Nginx如何安装配置
发布时间 - 2023-05-12 00:00:00 点击率:次简介
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
# 代理服务器
# 就会
# 都是
# 客户端
# 重定向
# 器上
# 这一
# 很好
# 还没
# 放在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS中新建站点并配置端口与IP地址?
Laravel如何配置Horizon来管理队列?(安装和使用)
黑客入侵网站服务器的常见手法有哪些?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
香港网站服务器数量如何影响SEO优化效果?
MySQL查询结果复制到新表的方法(更新、插入)
详解jQuery停止动画——stop()方法的使用
Laravel怎么清理缓存_Laravel optimize clear命令详解
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
Laravel Session怎么存储_Laravel Session驱动配置详解
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
网站制作大概多少钱一个,做一个平台网站大概多少钱?
🚀拖拽式CMS建站能否实现高效与个性化并存?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在阿里云通过域名搭建网站?
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Firefox Developer Edition开发者版本入口
Linux安全能力提升路径_长期防护思维说明【指导】
如何在Tomcat中配置并部署网站项目?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何快速配置高效服务器建站软件?
如何快速搭建安全的FTP站点?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
详解CentOS6.5 安装 MySQL5.1.71的方法
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何在万网开始建站?分步指南解析
清除minerd进程的简单方法
,交易猫的商品怎么发布到网站上去?
详解Huffman编码算法之Java实现
详解vue.js组件化开发实践
大同网页,大同瑞慈医院官网?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
如何在香港服务器上快速搭建免备案网站?
html如何与html链接_实现多个HTML页面互相链接【互相】
JS去除重复并统计数量的实现方法
利用vue写todolist单页应用
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?

