❶ linux系統中編譯安裝Nginx伺服器,看了還不會你來打我
使用yum安裝方式安裝PCRE:
yum安裝後檢查安裝結果:
使用yum安裝openssl-devel:
檢查yum安裝結果:
在確保Nginx編譯安裝所依賴的pcre-devel和openssl-devel已經安裝好了後,可以下載Nginx源碼進行編譯安裝。 Nginx源碼可以從Nginx官方網站(http://nginx.org)找到相應版本源碼的下載地址: http://nginx.org/download/nginx-1.16.0.tar.gz
下載Nginx源碼:
添加nginx用戶,服務於Nginx:
解壓軟體包:
編譯Ngixn源碼並安裝:
建立nginx應用程序軟鏈接:
啟動前為了避免報錯,先檢查配置文件語法:
啟動Nginx服務:
查看Nginx服務是否啟動成功:
說明已經啟動成功,打開瀏覽器輸入http://127.0.0.1/就可以看到nginx網頁信息。
❷ 如何在linux下編譯nginx
安裝nginx
1.下載
2.解壓
復制代碼代碼如下:
tar -zxvf nginx-1.7.0.tar.gz
3.編譯和安裝
執行如下命令:
#cdnginx-1.7.0#./configure--prefix=/usr/local/nginx-1.7.0--with-http_ssl_mole--with-http_spdy_mole--with-http_stub_status_mole--with-pcre
–with-http_stub_status_mole:支持nginx狀態查詢–with-http_ssl_mole:支持https–with-http_spdy_mole:支持google的spdy,想了解請網路spdy,這個必須有ssl的支持–with-pcre:為了支持rewrite重寫功能,必須制定pcre
最後輸出如下內容,表示configure OK了。
❸ linux nginx 編譯安裝的 怎麼啟動
linux nginx 編譯安裝的 怎麼啟動
–prefix=path
定義保存伺服器文件的目錄。這個目錄同時將作用於nginx.conf配置文件中配置的相對路徑(但不包括源碼庫的路徑)。默認值為/usr/local/nginx。
–sbin-path=path
設置nginx可執行文件的名稱,該名稱只在安裝期間使用。默認值是prefix/sbin/nginx
–conf-path=path
設置nginx.conf配置文件的名稱。如果需要,nginx可以使用不同的配置文件啟動,你可以通過命令行參數 -c file啟動。默認文件名為prefix/conf/nginx.conf
–pid-path=path
設置nginx.pid文件的名稱,nginx.pid用於存儲主進程的進程ID。安裝後,該文件名稱可以在nginx.conf的pid指令中修改。默認為prefix/logs/nginx.pid
–error-log-path=path
設置重要的錯誤、警告以及診斷文件的名字。安裝後,可以通過nginx.conf的error_log指令修改。默認為prefix/logs/error.log
–http-log-path=path
記錄主要請求日誌的名稱,安裝後通過access_log指令修改。默認為prefix/logs/access.log
–user=name
設置工作進程的用戶名,安裝後可以通過user指令修改。默認值為nobody
–group=name
設置工作進程的用戶組,安皇後可以通過user指令修改,默認與user相同。
–with-xxx_mole
安裝xxx模塊,這些模塊可以在nginx文檔中找到。
–without-xxx_mole
不安裝xxx模塊(有些模塊是默認安裝的,如果不想安裝,可以通過這個參數屏蔽),這些模塊可以在nginx文檔中找到。
❹ linux通過./configure,make,make install安裝文件後,用來編譯的文件可以刪除嗎
可以刪除安裝,我裝xdebug後把用於編譯安裝的目錄刪除後,重啟了php-fpm和nginx,xdebug可以正常使用。從壓縮包里解壓出來的文件僅用於編譯和安裝,安裝結果的文件會到固定(有些是用戶指定)的目錄中。
❺ 為什麼 windows 下nginx可以直接使用 linux下 還的編譯
windows是閉源的,版本編譯後可以在windows生態圈裡運行,
但是linux是開源的,有很多個不同的版本,而且有一些的差異性還是很大的,所以讓程序可以當前的Linux系統運行需要進行重新編譯,讓程序可以和系統兼容。
❻ 您好,我的論壇linux nginx伺服器 速度有些慢,請問有優化方法嗎
一、編譯安裝過程優化
1.減小Nginx編譯後的文件大小
在編譯Nginx時,默認以debug模式進行,而在debug模式下會插入很多跟蹤和ASSERT之類的信息,編譯完成後,一個Nginx要有好幾兆字
節。在編譯前取消Nginx的debug模式,編譯完成後Nginx只有幾百千位元組,因此可以在編譯之前,修改相關源碼,取消debug模式,具體方法如
下:
在Nginx源碼文件被解壓後,找到源碼目錄下的auto/cc/gcc文件,在其中找到如下幾行:
# debug CFLAGS=」$CFLAGS -g」
注釋掉或刪掉這兩行,即可取消debug模式。
2.為特定的CPU指定CPU類型編譯優化
在編譯Nginx時,默認的GCC編譯參數是「-O」,要優化GCC編譯,可以使用以下兩個參數:
--with-cc-opt='-O3'
--with-cpu-opt=CPU #為特定的 CPU 編譯,有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
要確定CPU類型,可以通過如下命令:
[root@localhost home]#cat /proc/cpuinfo | grep "model name"
二、利用TCMalloc優化Nginx的性能
TCMalloc的全稱為Thread-Caching
Malloc,是谷歌開發的開源工具「google-perftools」中的一個成員。與標準的glibc庫的malloc相比,TCMalloc庫在
內存分配效率和速度上要高很多,這在很大程度上提高了伺服器在高並發情況下的性能,從而降低系統負載。下面簡單介紹如何為Nginx添加TCMalloc
庫支持。
要安裝TCMalloc庫,需要安裝libunwind(32位操作系統不需要安裝)和google-perftools兩個軟體包,libunwind
庫為基於64位CPU和操作系統的程序提供了基本函數調用鏈和函數調用寄存器功能。下面介紹利用TCMalloc優化Nginx的具體操作過程:
1.安裝libunwind庫
可以從http://download.savannah.gnu.org/releases/libunwind下載相應的libunwind版本,這里下載的是libunwind-0.99-alpha.tar.gz,安裝過程如下:
[root@localhost home]#tar zxvf libunwind-0.99-alpha.tar.gz [root@localhost home]# cd libunwind-0.99-alpha/ [root@localhost libunwind-0.99-alpha]#CFLAGS=-fPIC ./configure [root@localhost libunwind-0.99-alpha]#make CFLAGS=-fPIC [root@localhost libunwind-0.99-alpha]#make CFLAGS=-fPIC install
2.安裝google-perftools
可以從http://google-perftools.googlecode.com下載相應的google-perftools版本,這里下載的是google-perftools-1.8.tar.gz,安裝過程如下:
[root@localhost home]#tar zxvf google-perftools-1.8.tar.gz [root@localhost home]#cd google-perftools-1.8/ [root@localhost google-perftools-1.8]# ./configure [root@localhost google-perftools-1.8]#make && make install [root@localhost google-perftools-1.8]#echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf [root@localhost google-perftools-1.8]# ldconfig
至此,google-perftools安裝完成。
3.重新編譯Nginx
為了使Nginx支持google-perftools,需要在安裝過程中添加「–with-google_perftools_mole」選項重新編譯Nginx,安裝代碼如下:
[[email protected]]#./configure \ >--with-google_perftools_mole --with-http_stub_status_mole --prefix=/opt/nginx [root@localhost nginx-0.7.65]#make [root@localhost nginx-0.7.65]#make install
到這里Nginx安裝完成。
4.為google-perftools添加線程目錄
創建一個線程目錄,這里將文件放在/tmp/tcmalloc下,操作如下:
[root@localhost home]#mkdir /tmp/tcmalloc [root@localhost home]#chmod 0777 /tmp/tcmalloc
5.修改Nginx主配置文件
修改nginx.conf文件,在pid這行的下面添加如下代碼:
#pid logs/nginx.pid; google_perftools_profiles /tmp/tcmalloc;
接著,重啟Nginx,完成google-perftools的載入。
6.驗證運行狀態
為了驗證google-perftools已經正常載入,通過如下命令查看:
[root@ localhost home]# lsof -n | grep tcmalloc nginx 2395 nobody 9w REG 8,8 0 1599440 /tmp/tcmalloc.2395 nginx 2396 nobody 11w REG 8,8 0 1599443 /tmp/tcmalloc.2396 nginx 2397 nobody 13w REG 8,8 0 1599441 /tmp/tcmalloc.2397 nginx 2398 nobody 15w REG 8,8 0 1599442 /tmp/tcmalloc.2398
由於在Nginx配置文件中,設置worker_processes的值為4,因此開啟了4個Nginx線程,每個線程會有一行記錄。每個線程文件後面的數字值就是啟動的Nginx的PID值。
至此,利用TCMalloc優化Nginx的操作完成。
三、Nginx內核參數優化
內核參數的優化,主要是在Linux系統中針對Nginx應用而進行的系統內核參數優化,常見的優化參數值如下。
下面給出一個優化實例以供參考:
net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_syncookies = 1 net.core.somaxconn = 262144 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_max_orphans = 262144 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_keepalive_time = 30
將上面的內核參數值加入/etc/sysctl.conf文件中,然後執行如下命令使之生效:
[root@ localhost home]#/sbin/sysctl -p
下面是對實例中選項的含義進行介紹:
net.ipv4.tcp_max_tw_buckets參數用來設定timewait的數量,默認是180000,這里設為6000。
net.ipv4.ip_local_port_range選項用來設定允許系統打開的埠范圍。
net.ipv4.tcp_tw_recycle選項用於設置啟用timewait快速回收。
net.ipv4.tcp_tw_reuse選項用於設置開啟重用,允許將TIME-WAIT sockets重新用於新的TCP連接。
net.ipv4.tcp_syncookies選項用於設置開啟SYN Cookies,當出現SYN等待隊列溢出時,啟用cookies進行處理。
net.core.somaxconn選項默認值是128, 這個參數用於調節系統同時發起的tcp連接數,在高並發的請求中,默認的值可能會導致鏈接超時或者重傳,因此,需要結合並發請求數來調節此值。
net.core.netdev_max_backlog選項表示當每個網路介面接收數據包的速率比內核處理這些包的速率快時,允許發送到隊列的數據包的最大數目。
net.ipv4.tcp_max_orphans選項用於設定系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上。如果超過這個數
字,孤立連接將立即被復位並列印出警告信息。這個限制只是為了防止簡單的DoS攻擊。不能過分依靠這個限制甚至人為減小這個值,更多的情況是增加這個值。
net.ipv4.tcp_max_syn_backlog選項用於記錄那些尚未收到客戶端確認信息的連接請求的最大值。對於有128MB內存的系統而言,此參數的默認值是1024,對小內存的系統則是128。
net.ipv4.tcp_synack_retries參數的值決定了內核放棄連接之前發送SYN+ACK包的數量。
net.ipv4.tcp_syn_retries選項表示在內核放棄建立連接之前發送SYN包的數量。
net.ipv4.tcp_fin_timeout選項決定了套接字保持在FIN-WAIT-2狀態的時間。默認值是60秒。正確設置這個值非常重要,有時候即使一個負載很小的Web伺服器,也會出現因為大量的死套接字而產生內存溢出的風險。
net.ipv4.tcp_keepalive_time選項表示當keepalive啟用的時候,TCP發送keepalive消息的頻度。默認值是2(單位是小時)。