Linux下安裝Nginx(實戰配置)

Nginx簡介

Nginx是什麼?

Nginx是一款輕量級Web服務器,也是一款反向代理服務器
官網:http://nginx.org/
中文文檔: http://www.nginx.cn/doc/

Nginx能幹什麼?

Nginx能幹的事情很多,這裏簡要羅列一-些:

  1. 可直接支持Rails和PHP的程序
  2. 可作爲HTTP反向代理服務器
  3. 作爲負載均衡服務器
  4. 作爲郵件代理服務器
  5. 幫助實現前端動靜分離

Nginx特點

Nginx安裝

Nginx下載

官網下載:http://nginx.org/en/download.html
或者直接在linux執行命令:wget http://nginx.org/download/nginx-1.17.6.tar.gz
這裏下載的版本是1.17.6

安裝步驟

# 安裝依賴
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
# 解壓縮
tar -zxvf nginx-1.17.6.tar.gz
cd nginx-1.17.6/
# 執行配置
./configure
# 編譯安裝(默認安裝在/usr/local/nginx)
make
make install

OK,現在可以執行make 了。 

   

執行make、make install命令。

 

防火牆配置

nginx默認監聽80端口,如果未關閉防火牆需要配置iptables規則開放80端口(以centos7爲例)。

查看已開放的端口

firewall-cmd --list-ports

開放端口(開放後需要要重啓防火牆才生效)

firewall-cmd --zone=public --add-port=3338/tcp --permanent

重啓防火牆

firewall-cmd --reload
 

CentOS 6系統下防火牆設置:

編輯配置文件:vim /etc/sysconfig/iptables
在文件中間添加iptables規則
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重啓防火牆:service iptables restart
或者關閉iptables規則:iptables -F && iptables -t nat -F

Nginx驗證

nginx主配置文件:/usr/local/nginx/conf/nginx.conf
nginx日誌文件:/usr/local/nginx/logs/access.log
啓動Nginx:/usr/local/nginx/sbin/nginx

指定啓動文件啓動Nginx:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
然後直接訪問ip地址,比如:http://192.168.0.110/,如果能看到如下Nginx主頁說明安裝ok。

Nginx常用命令

測試配置文件:${Nginx}/sbin/nginx -t
啓動命令:${Nginx}/sbin/nginx
停止命令:${Nginx}/sbin/nginx -s stop/quit
重啓命令:${Nginx}/sbin/nginx -s reload
查看進程命令:ps -ef | grep nginx
平滑重啓:kill -HUP [Nginx主進程號(即ps命令查到的PID)]

 

Nginx反向代理配置

我們希望實現的是通過訪問某個域名能夠訪問到tomcat的主頁。

  1. 在Nginx安裝目錄的conf目錄下新建一個vhost目錄,然後在vhost目錄下新建配置文件,文件名需要以.conf結尾。
cd /usr/local/nginx/conf/
mkdir vhost
cd vhost/
vim www.silly.com.conf

配置文件添加如下內容,這裏server_name配置的是主機對應的域名,如果沒有域名可以通過配置host來映射虛擬域名,或者這裏直接配置ip地址,然後用ip訪問,proxy_pass是反向代理配置。

server {
    listen 80;
    autoindex on;
    server_name www.silly.com;
    access_log /usr/local/nginx/logs/access.log combined;
    index index.html index.htm index.jsp index.php;
    if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
    }

    location / {
        proxy_pass http://127.0.0.1:8080;
        add_header Access-Control-Allow-Origin *;
    }
}
  1. 配置完成之後,編輯Nginx主配置文件nginx.conf,在http節點下添加如下內容,注意分號不可省略。

  1. 因爲這裏使用的是虛擬機,所以需要配置host文件,注意host配置的應該是我們使用的客戶端也就是瀏覽器所在的主機host,這裏使用的是windows系統訪問,所以應該在windows下配置host,位置:C://Windows/System32/drivers/etc
    編輯hosts文件,在文件末尾添加內容(虛擬機ip + 需要映射的域名):
    192.168.0.110 http://www.silly.com
  2. 配置好了host後,打開cmd,執行ping命令驗證是否生效。

  1. 重啓Nginx:/usr/local/nginx/sbin/nginx -s reload
    然後啓動tomcat:${tomcat}/bin/startup.sh
  2. 訪問域名:http://www.silly.com/,就可以訪問到tomcat的主頁了。
  3. 指定啓動文件啓動Nginx:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

總結:整個過程就是當我們訪問域名時,首先根據host配置映射到了一個IP地址,也就是訪問到了虛擬機,不加端口默認訪問的就是80端口,也就是訪問到了虛擬機的Nginx,在Nginx配置中對該域名進行了反向代理,代理到了本機的8080端口服務,所以最終就訪問到了虛擬機的Tomcat服務器。

參考資料:https://www.cnblogs.com/xxoome/p/5866475.html

https://blog.csdn.net/LYJ_man/article/details/90521915

作者:若汐緣
鏈接:https://www.jianshu.com/p/9f2c162ac77c
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章