時間:2023-07-14 13:00:01 | 來源:網(wǎng)站運(yùn)營
時間:2023-07-14 13:00:01 來源:網(wǎng)站運(yùn)營
干貨篇 | Nginx 我還真不信你學(xué)不會(中):在《干貨篇 | Nginx 我還真不信你學(xué)不會(上)》中,我們大概對Nginx有一了一個大概印象:我們知道了Nginx是干什么用的、什么是反向代理和正向代理以及什么是負(fù)載均衡。yum install -y nginx
systemctl start nginx
systemctl enable nginx
#關(guān)閉防火墻systemctl stop firewalld.service?#暫時關(guān)閉SELinuxsetenforce 0
vim /etc/selinux/config
nginx
訪問本機(jī)地址:80
/etc/nginx/nginx.conf
/etc/nginx/conf.d/
這個是一個目錄,里面通常是存放虛擬主機(jī)的一些配置,比如說我們要做一個博客網(wǎng)站和論壇網(wǎng)站,就可以分別定義這兩個網(wǎng)站的配置文件,然后存放到這個目錄下。就不用都把配置寫進(jìn)主配置文件里,顯得更簡潔美觀cat /etc/nginx/nginx.conf=====================第一個部分,配置文件的主區(qū)域======================user nginx; # 定義worker進(jìn)程的管理用戶worker_processes auto; # 定義worker進(jìn)程數(shù),auto會自動調(diào)整為cpu核數(shù)worker_cpu_affinity auto [cpumask] #提高緩存命中率,將worker與cpu綁定 CPU MASK:00000001:第一個CPU 00000010:第二個CPU worker_cpu_affinity 0001 0010 0100 1000;worker_priority number#指定worker進(jìn)程的nice值,設(shè)定worker進(jìn)程優(yōu)先級: [-20,20](最大為19)worker_rlimit_ nofile number #worker進(jìn)程所能夠打開的文件數(shù)量上限,如65535error_log /var/log/nginx/error.log; # 定義錯誤日志pid /run/nginx.pid; # 指定存儲nginx主進(jìn)程的PID文件路徑include /usr/share/nginx/modules/*.conf; #指明包含進(jìn)來的其他配置文件片段daemon on|off #是否以守護(hù)進(jìn)程方式運(yùn)行nginxmaster_ process on|off #是否以master/worker模型運(yùn)行nginx,默認(rèn)為on
...events { worker_connections 1024; # 定義一個worker進(jìn)程可以同時接受1024個請求 #總最大并發(fā)數(shù): worker_processes * worker_ connections use method #指明并發(fā)連接請求的處理方法,默認(rèn)為epoll use poll; accept_mutex on|off #處理新的連接請求的方法; on指由各個worker輪流處理新請求, Off指每個新請求的到達(dá)都會通知(喚醒)所有的worker進(jìn)程,但只有一個進(jìn)程可獲得連接,造成 “驚群”,影響性能}
...http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';# 定義日志格式access_log /var/log/nginx/access.log main; # 指定日志文件路徑sendfile on; # 允許sendfile方式傳輸文件tcp_nopush on; # 在sendfile啟動下,使用TCP_CORK套接字tcp_nodelay on; # 接連接保持活動狀態(tài)keepalive_timeout 65; # 超時時間types_hash_max_size 2048;# 連接超時時間include /etc/nginx/mime.types; # 文件擴(kuò)展名與文件類型映射表default_type application/octet-stream; # 默認(rèn)文件類型,默認(rèn)為text/plaininclude /etc/nginx/conf.d/*.conf; #虛擬主機(jī)目錄server { listen 80 default_server; # 指定監(jiān)聽的端口 listen [::]:80 default_server; server_name _; # 指定網(wǎng)站主機(jī)名 root /usr/share/nginx/html; # 定義站點(diǎn)目錄的位置 include /etc/nginx/default.d/*.conf; # 定義首頁文件 location / {} error_page 404 /404.html; # 定義優(yōu)雅顯示頁面信息 location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { }}
server{ listen adress[:PORT]PORT; server_name SERVER_NAME; root /PATH/TO/DOCUMENT_ROOT;}
server{ listen 80; server_name www.a.com; root /data/web1; location / { }}
listen 80 default_ server;
listen 80listen 8080listen 8888
listen 192.168.1.1:80listen 192.168.1.2:80
server_name www.xxoo.com;
server_name www.xxoo.com www.ooxx.com;
(1) 首先是字符串精確匹配如: www.xxoo.com(2) 左側(cè)*通配符如: *.xxoo.com(3) 右側(cè)通配符如: www.xxoo.(4) 正則表達(dá)式如: ~^.*/.xxoo.com$(5) 默認(rèn)主機(jī) default_ server
server{ server_name www.xxoo.com; root /www/html;}http://www.xxoo.com/index.html ----> /www/html/index.html
server{ server_name www.xxoo.com; root /www/html; location / { /www/html/; }}http://www.xxoo.com/1.html ----> /www/html/1.html
server{ server_name www.xxoo.com; root /www/html; location /images{ /data/images }}http://www.xxoo.com/images ----> /data/images/1.jpg
server{ listen 80; server_name www.salted.com; location /bbs/{ alias /web/forum/; } http: //www.salted.com/bbs/index.html ----> /web/forum/index.html
路徑別名:server{ listen 80; server_name www.salted.com; location /bbs/{ alias /web/forum/; http://www.salted.com/bbs/index.html ----> /web/forum/index.html路徑映射server{ listen 80; server_name www.salted.com; location /bbs/{ root /web/forum/; } http://www.salted.com/bbs/index.html ----> /web/forum/bbs/index.html
server{ listen 80; server_name www.salted.com; error_page 404 /404.html; location /404.html { root /data/error/; }}
這樣我們訪問后如果碰到404錯誤的話就會顯示出我們指定的錯誤頁面。server{ listen 80; server_name www.salted.com; error_page 404=200 /404.htmL; location /404.html { root /data/error/; }}
vim /etc/nginx/conf.d/www.confserver { listen 8080; server_name www.xxoo.com; location / { root /usr/share/nginx/html; index my_index.html; }}
nginx -s reload
vim /usr/share/nginx/html/my_index.html
vim /etc/hosts192.168.244.128 www.xxoo.com
如果想要在Windows上通過訪問域名就能訪問到網(wǎng)站的話,我們要在Windows上設(shè)置域名解析server{ listen 8080 ; server_name www.xxoo.com; root /usr/share/nginx/html; location / { index my_index.html; } location /data { root /web/; } location /web/images { root /web/; }}
nginx -s reload
mkdir -pv /web/{data,images}echo "this is /web/data" > /web/data/index.htmlecho "this is /web/images" > /web/images/index.html```
server{ listen 8080 ; server_name www.xxoo.com; root /usr/share/nginx/html; error_page 404 /404.html; location / { index my_index.html; } location /data { root /web/; } location /images { root /web/; } location /404.html { root /web/pages/; }}```
創(chuàng)建存放錯誤頁面的目錄mkdir /web/pages
vim /web/pages/404.html<h1>this is 404 error!</h1>```
驗(yàn)證如下touch /etc/nginx/conf.d/{bbs,blog,www}.conf
#第一個虛擬主機(jī)vim /etc/nginx/conf.d/bbs.confserver { listen 8080; server_name bbs.com; location / { root /html/bbs; index index.html; }}#第二個虛擬主機(jī)vim /etc/nginx/conf.d/blog.confserver { listen 8080; server_name blog.com; location / { root /html/blog; index index.html; }}#第三個虛擬主機(jī)vim /etc/nginx/conf.d/www.confserver { listen 8080; server_name www.com; location / { root /html/www; index index.html; }}
mkdir -p /html/{www,bbs,blog}for name in {www,bbs,blog};do echo "<h1> $name </h1>" >/html/$name/index.html;done;;
vim /etc/hosts192.168.33.133 www.eagle.com bbs.eagle.com blog.eagle.com
nginx -s reload
curl www.com:8080<h1> www </h1>curl bbs.com:8080<h1> bbs </h1>curl blog.com:8080<h1> blog </h1>
關(guān)鍵詞:干貨
客戶&案例
營銷資訊
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。