nginx.conf配置文件

1、全局模塊

worker_processes 1;

工作進程數,一般設置成服務器內核數的2倍(一般不超過8個,超過8個反而會降低性能,一般是4個,1-2個也可以)

處理進程的過程必然涉及配置文件和展示頁面,也就是涉及打開文件的數量

linux默認打開的文件數是1024個

修改最大文件數 /etc/security/limits.conf

?alias和root之間匹配工作目錄的區別:

root的匹配模式是拼接

root的工作目錄/opt/test1,訪問的uri /xy102

location /xy102

工作目錄/opt/test1

訪問的是/opt/test1/xy102

alias匹配nginx的工作目錄,路徑是絕對路徑

location /xy102

alias /opt/test1/xy102/;

alias只能寫在http模塊當中server模塊的location模塊當中

root可以寫在server模塊,也可以在http,也可以在location

使用alias匹配工作目錄不能夠使用重定向功能

2、events模塊

events {

? ? ? ? workers_connections 1024;

}

決定了nginx能夠處理的連接數,連接數和worker_processes的數值相乘

3、stream四層代理模塊

4、http模塊

轉發和處理http請求,設置代理(正向代理,反向代理),緩存,定義日志格式,重定向配置?

在http模塊當中,包含:

server模塊,http里面可以有多個server模塊

在server模塊當中包含:location模塊

在server當中可以有多個location

5、實驗

5.1統計訪問狀態

修改配置文件

?各行的含義:

Active connections 當前活動的連接數

server accepts handled requests 表示已經處理的連接數

2 2 21

從左往右表示已經處理的連接數,成功建立連接的次數,已經處理的請求數

Reading:0 writing:1 waiting:1

reading:表示服務端正在從客戶端讀取請求的數據

writing:表示服務端正在把響應數據發送給客戶端

waiting:表示有連接處于空閑狀態,等待新的請求

5.2基于密碼的授權進行訪問控制

先安裝httpd-tools,htpasswd的工具

?生成一個passwd.db的文件,用戶abc可以對這個文件進行處理,設置密碼為123

?將passwd.db的所有者改為nginx,并修改權限為400

?修改配置文件

?加密用戶才可以訪問

5.3基于客戶端的訪問控制

根據ip地址進行控制

拒絕192.168.233.62訪問,允許其他所有訪問

5.4基于域名的nginx的主機

修改配置文件

?vim /etc/hosts做一個本地映射

?訪問成功

多個server,修改配置文件

?

?本地映射

訪問成功

5.5基于ip地址的虛擬主機

創建虛擬網卡

?更改監聽地址

?訪問成功

5.6基于端口實現多個虛擬主機

更改端口號(范圍1-65535)

訪問8080端口

?訪問8888端口

5.7多個配置文件

進入配置文件,添加一個include

?創建conf.d目錄

mkdir conf.d

?創建新的文件test1.conf,添加server作為獨立的配置文件

?創建目錄test1、test2

[root@localhost opt]# mkdir -p conf/test1
[root@localhost opt]# mkdir -p conf/test2

?分別在test1、test2輸入內容

[root@localhost conf]# echo "this is test1" > test1/index.html
[root@localhost conf]# echo "this is test2" > test2/index.html

?訪問成功

6、nginx的優化與防盜鏈

6.1隱藏版本號

vim nginx.conf

無版本號

6.2修改用戶與組 ?

6.3設置頁面的緩存時間,主要是針對動態頁面

設置圖片的緩存

6.4日志分割

apache是自帶日志分割的,按天來進行收集日志

apache的日志access.log error.log

nginx沒有自動分割的功能,借助腳本來實現分割

6.5更改進程數以及設置cpu綁定

6.6連接超時

?

6.7配置頁面壓縮

gzip on
gzip_min_length 1k;
#最小的壓縮文件,小于等于1k的文件就不壓縮了
gzip_buffers 4 64k;
#設置壓縮的緩沖區,4個,每個緩沖區的大小為64k
gzip_comp_level 6;
#壓縮比例為1-9,數字越小,壓縮的比例越小,速度越快;數字越大,壓縮的比例就越高,速度越慢

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;
#支持壓縮的類型

6.8回收TIME_WAIT

time_wait是tcp連接當做的一種狀態,出現在四次揮手之后,處于等待狀態,雙方不再發送數據

time_wait所占用的系統資源很小,數量比較少,完全可以忽略不計,但是太多了就有一定的影響。

連接斷開(四次揮手)之后,盡快的把time_wait狀態的連接進行回收

netstat -n | awk '/^tcp/ {++s[$NF]} END {for (a in s) print a s[a]}
#統計當前系統的連接狀態

?修改內核文件

?sysctl -p? ?

#立即生效

6.9防盜鏈

?vim index.html

echo "192.168.230.10 www.xy102.com" >> /etc/hosts

echo "192.168.230.20 www.xy103.com" >> /etc/hosts

7、lnmp+DIS架構

是論壇的一個服務

l:linux 操作系統

n:nginx 前端頁面的web服務

php:動態請求轉發的中間件

m:mysql 數據庫,保存用戶和密碼以及論壇的相關內容

7.1安裝數據庫

將mysql的包拖進去,并且解壓

?將包改名為mysql,移動到/usr/local

?創建mysql的程序用戶

[root@localhost opt]# useradd -M -s /sbin/nologin mysql

修改所有者和所在組

[root@localhost opt]# chown -R mysql.mysql /usr/local/mysql

修改mysql主配置文件的所有者和所在組

[root@localhost opt]# chown mysql.mysql /etc/my.cnf

?修改主配置文件

vim /etc/my.cnf

?port = 3306
[client]
port = 3306
#客戶端訪問的端口
socket=/usr/local/mysql/mysql.sock
#指定mysql的通信套接字文件

[mysqld]
#mysql的安裝目錄
datadir=/usr/local/mysql/data
#mysql數據保存的目錄
port = 3306
character-set-server=utf8
#字符集的編碼
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
#任意地址都可以訪問數據庫
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
#mysql默認的存儲引擎
max_allowed_packet=16M
server-id = 1
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#mysql支持的數據類型和相關的模塊

?將文件放到/etc/profile里,讓系統可以識別

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

?source /etc/profile

?初始化數據庫

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

?將文件復制到mysqld

?給一個執行權限

chmod +x /etc/init.d/mysqld

?讀取配置文件,重啟mysqld

systemctl daemon-reload

systemctl restart mysqld

?查看是否有3306這個端口

?初始化數據庫的密碼

數據庫安裝完畢

?

?在數據庫中創建用戶

mysql> create user 'root'@"%" identified by '123456';

Query OK, 0 rows affected (0.01 sec)

?賦權

mysql> grant all privileges on *.* to 'root'@'%';

Query OK, 0 rows affected (0.00 sec)

?刷新權限

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

?navicat遠程登錄,修改加密方式,刷新

mysql> alter user 'root'@'%' identified with mysql_native_password by "123456";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

安裝php的依賴環境

?yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
oniguruma-devel \
sqlite-devel

將php的安裝包拖進來并解壓

編譯安裝,開始配置

?./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-pdo-mysql \
--with-openssl \
--with-sqlite-devel \
--with-oniguruma-devel \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

?配置成功

安裝

?make -j 4 && make install

?安裝完成

?優化兩個線路,讓系統識別到

[root@nginx1 php-8.1.27]# ln -s /usr/local/php/bin/* /usr/local/bin/

[root@nginx1 php-8.1.27]# ln -s /usr/local/php/sbin/* /usr/local/sbin/

?將主配置文件php.ini-development復制到/usr/local/php/lib,改名為php.ini

cp php.ini-development /usr/local/php/lib/php.ini

?打開/usr/local/php/lib/php.ini,修改976和1181行的內容

修改進程服務的配置文件

復制php-fpm.conf.default

?打開php-fpm.conf,取消17行的注釋

調整擴展配置文件

復制www.conf.default

啟動php

/usr/local/php/sbin/php-fpm -c

/usr/local/php/lib/php.ini

?查看端口號

?添加系統配置

?配置nginx的動態轉發

?

?<?php
phpinfo();
?>

?瀏覽器訪問成功

?進入數據庫,創建專門用來保存論壇信息的用戶和庫

mysql -u root -p123456

?創建庫,名為bbs

create database bbs;

?

?創建用戶bbsuser,任意地址都可以連接,密碼為admin123

create user 'bbsuser'@'%' identified by 'admin123'

賦權,刷新

?mysql> grant all privileges on bbs.* to 'bbsuser'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

?創建本地連接用戶

create user 'bbsuser'@'localhost' identified by 'admin123';

?賦權,刷新

mysql> grant all privileges on bbs.* to 'bbsuser'@'localhost';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

指定用戶登錄

?連接數據庫成功

7.2安裝discuz論壇

將discuz安裝包拖進去,解壓

unzip Discuz_X3.5_SC_UTF8.zip -d /opt/dis

?復制upload

?修改所有者所在組和權限

[root@localhost html]# chown -R nginx.nginx bbs/

[root@localhost html]# chmod -R 777 bbs/

?開始訪問

安裝成功

?論壇搭建成功

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42643.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42643.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42643.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高斯過程的定義

高斯過程 1. 高斯過程的定義2. 協方差矩陣的構建3. 協方差矩陣的性質3.1. 計算挑戰3.2. 解決方法 1. 高斯過程的定義 高斯過程可以看作是對函數的分布&#xff0c;它假定任何有限數量的函數值的集合服從一個多元高斯分布。給定輸入數據點集合 { x 1 , x 2 , … , x n } \left…

2024.7.9作業

1、提示并輸入一個字符串&#xff0c;統計該字符串中字母、數字、空格以及其他字符的個數 #include <stdio.h> #include <string.h> int main(int argc,const char *argv[]) { char arr[30]{0}; int zm0,kg0,sz0,qt0; printf("請輸入字符串&…

OpenStack是一個開源的云計算平臺

OpenStack是一個開源的云計算平臺&#xff0c;由多個組件組成&#xff0c;這些組件協同工作&#xff0c;提供包括計算、網絡、存儲和身份服務在內的基礎設施即服務(IaaS)。OpenStack最初由NASA和Rackspace合作開發&#xff0c;目的是創建一個開放源代碼的云操作系統。 OpenSta…

智慧光伏一站式解決方案

光伏電站智慧化管理平臺&#xff0c;將現代先進的數字信息技術、通信技術、互聯網技術、云計算技術、大數據挖掘技術與光伏技術高度融合而形成。可以滿足光伏企業對電站的高發電量、低初始投資、低運維成本等需求&#xff0c;從開發到運維的25年生命周期內&#xff0c;實現高收…

使用clion刷leetcode

如何優雅的使用clion刷leetcode 安裝插件&#xff1a;LeetCode Editor) 插件配置&#xff1a; 這樣我們每打開一個項目&#xff0c;就會創建類似的文件 我們的項目結構&#xff1a; 我們在題解文件中導入頭文件myHeader.h并將新建的文件添加到cmakelists.txt文件&#xff0c;…

2024前端面試真題【JS篇】

DOM DOM&#xff1a;文本對象模型&#xff0c;是HTML和XML文檔的編程接口。提供了對文檔的結構化的表述&#xff0c;并定義可一種方式可以使從程序中對該結構進行訪問&#xff0c;從而改變文檔的結構、樣式和內容。 DOM操作 創建節點&#xff1a;document.createElement()、do…

hnust 1965: 深度優先搜索

hnust 1965: 深度優先搜索 題目描述 輸入一個圖&#xff0c;用鄰接矩陣存儲&#xff08;實際上也可以選擇鄰接表&#xff09;&#xff0c;并實現DFSTraverse操作。 拷貝前面已經實現的代碼&#xff0c;主函數必須如下&#xff0c;完成剩下的部分。 int main() { Graph g; Cre…

RTOS系統 -- 調試大法之FreeRTOS在M4上實現coredump功能

FreeRTOS內核崩潰&#xff08;coredump&#xff09;及異常打印技術 技術背景 在嵌入式系統中&#xff0c;FreeRTOS是一款廣泛使用的實時操作系統。FreeRTOS本身并不包含默認的coredump機制&#xff0c;但我們可以通過自定義異常處理函數來實現異常打印和coredump功能。通過捕…

了解PPO算法(Proximal Policy Optimization)

Proximal Policy Optimization (PPO) 是一種強化學習算法&#xff0c;由 OpenAI 提出&#xff0c;旨在解決傳統策略梯度方法中策略更新過大的問題。PPO 通過引入限制策略更新范圍的機制&#xff0c;在保證收斂性的同時提高了算法的穩定性和效率。 PPO算法原理 PPO 算法的核心…

Oracle數據庫自帶的內置表和視圖、常用內部視圖

文章目錄 一.Oracle數據庫自帶的內置表和視圖1.dba_開頭表2.user_開頭表3.v$開頭表4.all_開頭表5.session_開頭表6.index_開頭表 三.按組分的幾組重要的性能視圖1.System的over view2.某個session的當前情況3.SQL的情況4.Latch/lock/ENQUEUE5.IO方面的 分類類別關系群集、表、視…

【docker 把系統盤空間耗沒了!】windows11 更改 ubuntu 子系統存儲位置

系統&#xff1a;win11 ubuntu 22 子系統&#xff0c;docker 出現問題&#xff1a;系統盤突然沒空間了&#xff0c;一片紅 經過排查&#xff0c;發現 AppData\Local\packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\ 這個文件夾竟然有 90GB 下面提供解決辦法 步…

Spring-AOP(二)

作者&#xff1a;月下山川 公眾號&#xff1a;月下山川 1、什么是AOP AOP&#xff08;Aspect Oriented Programming&#xff09;是一種設計思想&#xff0c;是軟件設計領域中的面向切面編程&#xff0c;它是面向對象編程的一種補充和完善&#xff0c;它以通過預編譯方式和運行期…

【課程總結】Day13(下):人臉識別和MTCNN模型

前言 在上一章課程【課程總結】Day13(上):使用YOLO進行目標檢測,我們了解到目標檢測有兩種策略,一種是以YOLO為代表的策略:特征提取→切片→分類回歸;另外一種是以MTCNN為代表的策略:先圖像切片→特征提取→分類和回歸。因此,本章內容將深入了解MTCNN模型,包括:MTC…

CountDownLatch 是 Java 中的一個同步輔助工具類

下面是一個使用 CountDownLatch 的案例分析&#xff0c;我們將通過一個簡單的示例來展示如何使用 CountDownLatch 來同步多個線程的操作。 ### 場景描述 假設我們有一個任務&#xff0c;需要從多個數據源&#xff08;比如多個數據庫表或文件&#xff09;中讀取數據&#xff0c…

使用jdk11運行javafx程序和jdk11打包jre包含javafx模塊

我們都知道jdk11是移除了javafx的,如果需要使用javafx,需要單獨下載。 這就導致我們使用javafx開發的桌面程序使用jdk11時提示缺少javafx依賴。但這是可以通過下面的方法解決。 一,使用jdk11運行javafx程序 我們可以通過設置vmOptions來使用jdk11運行javafx程序 1,添加j…

【RAG KG】GraphRAG開源:查詢聚焦摘要的圖RAG方法

前言 傳統的 RAG 方法在處理針對整個文本語料庫的全局性問題時存在不足&#xff0c;例如查詢&#xff1a;“數據中的前 5 個主題是什么&#xff1f;” 對于此類問題&#xff0c;是因為這類問題本質上是查詢聚焦的摘要&#xff08;Query-Focused Summarization, QFS&#xff09…

嵌入式單片機,兩者有什么關聯又有什么區別?

在開始前剛好我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「嵌入式的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“666”之后私信回復“666”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01;使用單片機是嵌入式系統的…

iOS 國際化語言第一語言不支持時候默認語言強轉英文

對bundle擴展 直接貼代碼 .h文件 // // NSBundleKdLocalBundle.h // QooCam // // Created by bob bob on 2023/9/8.//#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINinterface NSBundle (KdLocalBundle)end interface KdLocalBundle:NSBundleend interf…

CurrentHashMap巧妙利用位運算獲取數組指定下標元素

先來了解一下數組對象在堆中的存儲形式【數組長度&#xff0c;數組元素類型信息等】 【存放元素對象的空間】 Ma 基礎信息實例數據內存填充Mark Word,ClassPointer,數組長度第一個元素第二個元素固定的填充內容 所以我們想要獲取某個下標的元素首先要獲取這個元素的起始位置…

軟件工程常見知識點

下午收到字節日常實習的面試邀請&#xff0c;希望這次能有一個好的表現。言歸正傳&#xff0c;郵件中提到這些問題&#xff0c;我這邊借了書并查了網上的資料&#xff0c;做一個提前準備。 軟件工程核心概念&#xff1a; 如何從一個需求落實到一個系統設計&#xff1f; 經過我…