中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

centos8如何安裝配置nginx

發布時間:2020-06-03 22:54:56 來源:億速云 閱讀:3611 作者:Leah 欄目:系統運維

這篇文章給大家分享的是centos8安裝配置nginx的詳細安裝教程,相信大部分人都還不知道怎么安裝,為了讓大家學會,給大家總結了以下內容,話不多說,一起往下看吧。

CentOS7與centOS8的抉擇

目前國內各大云服務器的默認centos 系統版本還是7,目前沒有centos配套支持,國外云服務器廠商默認就是8,如vultr

centos8的性能提升,官網介紹的更清楚

安裝centos8 min版本,在我的系統上查看,發現nginx默認是1.14

開發語言版本

  • Python 3.6

  • PHP 7.2

  • Ruby 2.5

  • Node.js 10

  • java::OpenJDK 11


數據庫版本

  • MySQL 8.0

  • MariaDB 10.3

  • PostgreSQL 10 and PostgreSQL 9.6

  • Redis 5.0

而我的服務器msyql是msyql5.6 php是php5.6 ,我是選擇重新來過一遍。

centos8 從零開始安裝nginx mysql php 系統默認版本搭建php網站

centos8 安裝nginx

  • 安裝nginx

    yum install nginx php 

  • 啟動nginx

    systemctl start nginx.service

  • 查看nginx狀態

    systemctl status nginx

  • 設置nginx開機啟動

    systemctl enable nginx.service

centos8 安裝php

  • 安裝php

  • yum install  php

  • 安裝php拓展庫 

  • yum install  php-json php-xml  php-mysqlnd php-mbstring  php-common  php-gd

  • 啟動php

  • systemctl start php-fpm

  • 查看php版本

  • php -V

  • 設置php開機啟動

  • systemctl enable php-fpm

centos8安裝mysql

  • 查看是否安裝MySQL

    rpm -qa | grep mysql

  • 下載安裝包文件

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

  • 安裝mysql-community-release-el7-5.noarch.rpm包

    rpm -ivh mysql-community-release-el7-5.noarch.rpm

  • 查看可用安裝包

    yum repolist all | grep mysql

  • 安裝mysql

    yum install mysql-server

  • 檢查mysql是否安裝成功。

    rpm -qa | grep mysql

  • 啟動 mysql 服務 

    systemctl start mysqld.service


網站nginx selinux 文件權限配置

網站nginx配置

像我這種小水管網站,需要注意的就是,nginx 限流

大致配置如下

    # 1M能存儲16384個狀態,rete的值必須為整數,
    # 如果限制兩秒鐘一個請求,可以設置成30r/m ,其中$binary_remote_addr有時需要根據自己已有的log_format變量配置進行替換
    limit_conn_zone $binary_remote_addr zone=perip:1m;
    limit_conn_zone $server_name zone=perserver:1m;
    #limit_req   zone=perip burst=10;
     # 限制客戶端并發連接數量為20, allow only one connection per an IP address at a time(每次). ;
    #是限制每個IP只能發起20連接 (addr 要跟 limit_conn_zone 的變量對應)
    # 表明以ip為key,來限制每個ip訪問lmit.html文件時候,最多只能有一個在線,否則其余的都要返回不可用。
    limit_conn perip 14;
    limit_conn perserver 10;
    limit_req_zone $binary_remote_addr zone=per_ip:1m rate=400r/s;
    limit_req_zone $server_name zone=per_server:10m rate=600r/s;
    limit_req zone=per_ip burst=300 nodelay;
    limit_req zone=per_server burst=500;

具體,推薦閱讀《Nginx下limit_req模塊burst參數超詳細解析》

nginx配置目錄結構如下

centos8如何安裝配置nginx


這里把本站配置貼一下

nginx基本配置

nginx配置文件為HOCON,intellij編輯的,配置查看:《HOCON:nginx配置文件后綴conf是什么格式類型文件夾?intellij如何編輯》,其他編輯器應該也有相應插件。有個插件認識代碼,編輯器起來應該舒服些。

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /etc/nginx/modules/*.conf;

events {
    # essential for linux, optmized to serve many clients with each thread
      # Linux 關鍵配置,允許單個線程處理多個客戶端請求。
      use epoll;
      # Determines how many clients will be served by each worker process.
      # (Max clients = worker_connections * worker_processes)
      # "Max clients" is also limited by the number of socket connections available on the system (~64k)
      # 配置單個 Nginx 單個進程可服務的客戶端數量,(最大值客戶端數 = 單進程連接數 * 進程數 )
      # 最大客戶端數同時也受操作系統 socket 連接數的影響(最大 64K )
      worker_connections 51200;

      #用來配置nginx服務器是否可能多地接收客戶端的連接請求,默認值為off
      multi_accept on;
}
# http config
include /etc/nginx/http/default.conf;
#include /etc/nginx/http/http_web.conf;
nginx http配置
http {
################################ logs  #######################
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    # Buffer log writes to speed up IO, or disable them altogether
    # 將日志寫入高速 IO 存儲設備,或者直接關閉日志。
    # access_log /var/log/nginx/access.log main buffer=16k;
    access_log off;
    # only log critical errors 只記錄 critical 級別的錯誤日志
    error_log /var/log/nginx/error.log crit;

################################  file  #######################
    # types
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    charset UTF-8;
    # 只允許get post 請求
    add_header 'Access-Control-Allow-Methods' 'GET, POST';
    #隱藏掉nginx的版本號
    server_tokens off;
################################ 開啟gzip壓縮 相關配置 #######################
    gzip on;
    gzip_disable   "MSIE [1-6]\.";
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 4;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;

    #  請求設置優化配置 #######################
    tcp_nodelay         on;
    # sendfile() 不但能減少切換次數而且還能減少拷貝次數。
    sendfile            on;
    # 使緩沖區中的數據立即發送出去
    tcp_nopush          on;
    # 指定每個 TCP 連接最多可以保持多長時間。Nginx 的默認值是 75 秒,有些瀏覽器最多只保持 60 秒,所以可以設定為 60 秒
    # 配置連接 keep-alive 超時時間,服務器將在超時之后關閉相應的連接
    keepalive_timeout   65;
    types_hash_max_size 2048;
    client_max_body_size 2m;
    # Number of requests a client can make over the keep-alive connection. This is set high for testing.
    # 單個客戶端在 keep-alive 連接上可以發送的請求數量,在測試環境中,需要配置個比較大的值。
    keepalive_requests  10000;
    # Timeout for keep-alive connections. Server will close connections after this time.
    # 配置連接 keep-alive 超時時間,服務器將在超時之后關閉相應的連接。
    # 客戶端向服務端發送一個完整的 request header 的超時時間。如果客戶端在指定時間內沒有發送一個完整的 request header,Nginx 返回 HTTP 408(Request Timed Out
    client_header_timeout 40s;
    # send the client a "request timed out" if the body is not loaded by this time. Default 60.
    # 指定客戶端與服務端建立連接后發送 request body 的超時時間。如果客戶端在指定時間內沒有發送任何內容,Nginx 返回 HTTP 408(Request Timed Out)
    client_body_timeout 40s;
    reset_timedout_connection on;
    # If the client stops reading data, free up the stale client connection after this much time. Default 60.
    # 客戶端數據讀超時配置,客戶端停止讀取數據,超時時間后斷開相應連接,默認是 60 秒。 服務端向客戶端傳輸數據的超時時間
    send_timeout 30;
    server_names_hash_bucket_size 128;
    #客戶端請求頭部的緩沖區大小,這個可以根據你的系統分頁大小來設置,一般一個請求頭的大小不會超過1k,不過由于一般系統分頁都要大于1k,所以這里設置為分頁大小
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;

################################ 限速配置 ################################
    limit_conn_log_level error;
    limit_conn_status 503;
    #limit_conn_zone $binary_remote_addr zone=one:1m;
    #limit_conn_zone $server_name zone=perserver:1m;
    # 定義一個名為allips的limit_req_zone用來存儲session,大小是10M內存,
    # 以$binary_remote_addr 為key,限制平均每秒的請求為20個,
    # 1M能存儲16384個狀態,rete的值必須為整數,
    # 如果限制兩秒鐘一個請求,可以設置成30r/m ,其中$binary_remote_addr有時需要根據自己已有的log_format變量配置進行替換
    limit_conn_zone $binary_remote_addr zone=perip:1m;
    limit_conn_zone $server_name zone=perserver:1m;

    #limit_req   zone=perip burst=10;
     # 限制客戶端并發連接數量為20, allow only one connection per an IP address at a time(每次). ;
    #是限制每個IP只能發起20連接 (addr 要跟 limit_conn_zone 的變量對應)
    # 表明以ip為key,來限制每個ip訪問lmit.html文件時候,最多只能有一個在線,否則其余的都要返回不可用。
    limit_conn perip 14;
    limit_conn perserver 10;
    limit_req_zone $binary_remote_addr zone=per_ip:1m rate=400r/s;
    limit_req_zone $server_name zone=per_server:10m rate=600r/s;
    limit_req zone=per_ip burst=300 nodelay;
    limit_req zone=per_server burst=500;
################################ web server #######################
    include  /etc/nginx/http/http_web.conf;

}
nginx空域名設置,禁止ip訪問

防止別把域名解析到我們的ip服務器,造成我們的ip被墻

# 關閉nginx空主機頭 防止nginx空主機頭及惡意域名指向
server {
    listen *:80 default;
    server_name _;
    #index index.html index.php index.htm;
    #root  /data/wwwroot/zhoulujun;
    #include /etc/nginx/conf.d/php.conf;
    # rewrite ^(.*) //zhoulujun.cn permanent;
    return 301 https://www.zhoulujun.cn$request_uri;
}
nginx php支持配置
################################  php 相關配置 #######################
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # include /etc/nginx/conf.d/php-fpm.conf
    upstream php-fpm {
        server unix:/run/php-fpm/www.sock;
    }
################################  php fastcgi 相關配置 #######################
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;

################################ host ################################
    include  /etc/nginx/site/default.conf;

linux服務器 web目錄權限設置

給需要讀取的文件,設置644,給需要指向的文件,如php文章,設置755,給需要讀寫的文件夾,如html uploadfile 文件夾設置777

具體權限設置,可以參看我之前寫的文章《理清用戶組概念及文件權限—搞懂網站權限設置》

設置了權限,由于centos8 默認開啟selinux ,網站還是不能訪問。一般報403錯誤。

centos8 網站服務器 selinux設置

網上搜索,一般都是說關閉selinux,但是,個人不建議關閉

設置selinux給web目錄讀權限

 chcon -v -R --type=httpd_sys_content_t /data/www/

設置selinux給web目錄寫權限

chcon -R -t httpd_sys_rw_content_t /data/www/

具體參看《centos8 nginx server root指向自定義目錄如(/data/www),訪問報403 404,所有文件用戶組為root 權限為755》

設置完了,網站就可以運行了


linux網站基本安全設置

linux添加用戶,修改用戶密碼,修改用戶權限,設置root操作

  • 添加一個名為 andyZhou的用戶

    useradd andyZhou

  • 修改密碼

    passwd chenjiafa

  • 給用戶root權限

    usermod -g root chenjiafa

網站平時用這個新增的用戶登錄,需要root權限,就su 切換

具體查看《linux添加用戶,修改用戶密碼,修改用戶權限,設置root用戶操作》

禁止root ssh登錄 修改默認端口

修改ssh配置文件

修改ssh登錄端口

vim /etc/ssh/sshd_config

找到“#Port 22”,這一行直接鍵入“yyp”復制該行到下一行,然后把兩行的“#”號即注釋去掉,修改成:

#Port 22
Port 10086

大家修改端口時候最好挑10000~65535之間的端口號,10000以下容易被系統或一些特殊軟件占用,或是以后新應用準備占用該端口的時候,卻被你先占用了,導致軟件無法運行

禁止root ssh登錄

PermitRootLogin no

增加ssh 普通登錄用戶

AllowUsers andyzhou

重啟ssh服務

systemctl restart sshd

linux防火墻端口設置

  • linux 防火墻關閉某個端口

    firewall-cmd --permanent --zone=public --remove-port=8080/tcp

  • linux 防火墻打開某個端口

    firewall-cmd --permanent --add-port=10086/tcp

  • 重新加載防火墻策略:

    firewall-cmd --reload

  • 查看防火墻端口開放情況

     firewall-cmd --list-ports

linux虛擬內存設置

我的個人博客是1g小內存,mysql跑起來,經常崩潰。

free -m  查看內存,根據情況設置內存,一般虛擬機內存為物理內存的2倍。那么設置2g虛擬內存,命令如下

dd if=/dev/zero of=/opt/swap bs=1024 count=2048000
chmod 600 /opt/swap
mkswap /opt/swap
swapon /opt/swap

mysql創建新用戶并授權,禁止root登錄

下面幾行sql,應該滿足您的需求

-- 創建用戶,以后用這個用戶登錄

CREATE USER 'userName' @ '訪問限制' IDENTIFIED BY 'password';

-- 授權用戶 ,給與數據的權限

GRANT ALL PRIVILEGES ON 數據庫名稱.表名稱 TO 'userName'@'訪問限制';

---修改用戶密碼(修改root密碼)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';

-- 刷新用戶權限

FLUSH PRIVILEGES;

關于centos8安裝配置nginx的教程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南通市| 卫辉市| 桦甸市| 石台县| 龙里县| 江西省| 隆德县| 龙州县| 北票市| 林州市| 叶城县| 龙泉市| 吉首市| 霍州市| 洪泽县| 开封市| 三亚市| 石门县| 全州县| 电白县| 砚山县| 广安市| 和田县| 红河县| 吐鲁番市| 上蔡县| 册亨县| 裕民县| 从化市| 搜索| 乌鲁木齐县| 南昌县| 神农架林区| 英超| 岑巩县| 乌拉特后旗| 抚松县| 尖扎县| 当涂县| 左贡县| 板桥市|