Nginx簡介
Nginx是什麼?
Nginx是一款輕量級Web服務器,也是一款反向代理服務器
官網:http://nginx.org/
中文文檔: http://www.nginx.cn/doc/
Nginx能幹什麼?
Nginx能幹的事情很多,這裏簡要羅列一-些:
- 可直接支持Rails和PHP的程序
- 可作爲HTTP反向代理服務器
- 作爲負載均衡服務器
- 作爲郵件代理服務器
- 幫助實現前端動靜分離
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的主頁。
- 在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 *;
}
}
- 配置完成之後,編輯Nginx主配置文件
nginx.conf
,在http節點下添加如下內容,注意分號不可省略。
- 因爲這裏使用的是虛擬機,所以需要配置host文件,注意host配置的應該是我們使用的客戶端也就是瀏覽器所在的主機host,這裏使用的是windows系統訪問,所以應該在windows下配置host,位置:
C://Windows/System32/drivers/etc
編輯hosts文件,在文件末尾添加內容(虛擬機ip + 需要映射的域名):192.168.0.110 http://www.silly.com
- 配置好了host後,打開cmd,執行ping命令驗證是否生效。
- 重啓Nginx:
/usr/local/nginx/sbin/nginx -s reload
然後啓動tomcat:${tomcat}/bin/startup.sh
- 訪問域名:http://www.silly.com/,就可以訪問到tomcat的主頁了。
- 指定啓動文件啓動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
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。