nginx的基本使用(啓動、關閉及域名映射訪問)

這幾天搗鼓公司網站,採用nginx+tomcat協同工作,裏面一些東西做一下相關備份,以備後來工作中的使用

1、停止nginx:停止操作是通過向nginx進程發送信號來進行的
步驟1:查詢nginx主進程號
ps -ef | grep nginx
在進程列表裏 面找master進程,它的編號就是主進程號了。
步驟2:發送信號
從容停止Nginx:
kill -QUIT 主進程號
快速停止Nginx:
kill -TERM 主進程號
強制停止Nginx:
pkill -9 nginx


另外, 若在nginx.conf配置了pid文件存放路徑則該文件存放的就是Nginx主進程號,如果沒指定則放在nginx的logs目錄下。有了pid文 件,我們就不用先查詢Nginx的主進程號,而直接向Nginx發送信號了,命令如下:
kill -信號類型 '/usr/nginx/logs/nginx.pid'

平滑重啓
如果更改了配置就要重啓Nginx,要先關閉Nginx再打開?不是的,可以向Nginx 發送信號,平滑重啓。
平滑重啓命令:
kill -HUP 住進稱號或進程號文件路徑
或者使用
/usr/sbin/nginx -s reload

注意,修改了配置文件後最好先檢查一下修改過的配置文件是否正確,以免重啓後Nginx出現錯誤影響服務器穩定運行。判斷Nginx配置是否正確命令如下:
nginx -t -c /usr/nginx/nginx.conf
或者
/usr/sbin/nginx -t

2、啓動nginx
啓動命令:/usr/sbin/nginx -c /usr/nginx/nginx.conf

-c制定配置文件的路徑


3、nginx的域名訪問配置

域名A:www.a.com的配置文件如下:(樣例)

server {
    listen       80;
    server_name  *.a.com;
    location / {
        proxy_pass http://localhost:8080/projectA/;
        proxy_set_header   Host    $host;
        proxy_set_header   X-Real-IP   $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
本人實做:

upstream tomcat_web{
      server localhost:8080 weight=10;
    }

    server {
        listen       80  default_server;
        listen       [::]:80  default_server;
        server_name  www.XXXXXX.net;
        #	index index.jsp
        # root         /home/microlink/app/site;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            #jsp網站程序根目錄,一般nginx與tomcat在同一個目錄
            root  /home/xxx/xxx/site;
            index  index.html index.jsp index.html;
        }

        location ~ .*\.jsp$ {
             proxy_connect_timeout   3;  
             proxy_send_timeout      30;  
             proxy_read_timeout      30;  
             proxy_pass http://localhost:8080;
	     proxy_set_header   Host    $host;
	     proxy_set_header   X-Real-IP   $remote_addr;
	     proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;  
        }

4、防火牆的開啓、關閉及狀態查詢

  • 查看防火牆狀態。
    systemctl status firewalld
  • 查看防火牆狀態
    chkconfig iptables --list
  • 臨時關閉防火牆命令。重啓電腦後,防火牆自動起來。
    systemctl stop firewalld
  • 永久關閉防火牆命令。重啓後,防火牆不會自動啓動。
    systemctl disable firewalld
  • 打開防火牆命令。
    systemctl enable firewalld
  • (1) 重啓後永久性生效:
  • 開啓:chkconfig iptables on
    關閉:chkconfig iptables off
    (2) 即時生效,重啓後失效:
    開啓:service iptables start
    關閉:service iptables stop
    需要說明的是對於Linux下的其它服務都可以用以上命令執行開啓和關閉操作。
    在開啓了防火牆時,做如下設置,開啓相關端口,
    修改/etc/sysconfig/iptables 文件,添加以下內容:
    -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state ——state NEW -m tcp -p tcp ——dport 22 -j ACCEPT
    或者:
    /etc/init.d/iptables status 會得到一系列信息,說明防火牆開着。
    /etc/rc.d/init.d/iptables stop 關閉防火牆
    最後:
    在根用戶下輸入setup,進入一個圖形界面,選擇Firewall configuration,進入下一界面,選擇Security Level爲Disabled,保存。重啓即可。
    ======================================================
    fedora下
    /etc/init.d/iptables stop
    =======================================================
    ubuntu下:
    由於UBUNTU沒有相關的直接命令
    請用如下命令
    iptables -P INPUT ACCEPT
    iptables -P OUTPUT ACCEPT
    暫時開放所有端口
    Ubuntu上沒有關閉iptables的命令
    =======================================================
    iptables 是linux下一款強大的防火牆,在不考慮效率的情況下,功能強大到足可以替代大多數硬件防火牆,但是強大的防火牆如果應用不當,可能擋住的可不光是那些潛在的攻擊,還有可能是你自己哦。這個帶來的危害對於普通的個人PC來說可能無關緊要,但是想象一下,如果這是一臺服務器,一旦發生這樣的情況,不光是影院正常的服務,還需要到現場去恢復,這會給你帶來多少損失呢?
    所以我想說的是,當你敲入每一個iptables 相關命令的時候都要萬分小心。
    1.應用每一個規則到DROP target時,都要仔細檢查規則,應用之前要考慮他給你帶來的影響。
    2.在redhat中我們可以使用service iptables stop來關閉防火牆,但是在有些版本如ubuntu中這個命令卻不起作用,大家可能在網上搜索到不少文章告訴你用iptables -F這個命令來關閉防火牆,但是使用這個命令前,千萬記得用iptables -L查看一下你的系統中所有鏈的默認target,iptables -F這個命令只是清除所有規則,只不會真正關閉iptables.想象一下,如果你的鏈默認target是DROP,本來你有規則來允許一些特定的端口,但一旦應用iptables -L ,清除了所有規則以後,默認的target就會阻止任何訪問,當然包括遠程ssh管理服務器的你。
    所以我建議的關閉防火牆命令是
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F
    總之,當你要在你的服務器上做任何變更時,最好有一個測試環境做過充分的測試再應用到你的服務器。除此之外,要用好iptables,那就要理解iptables的運行原理,知道對於每一個數據包iptables是怎麼樣來處理的。這樣才能準確地書寫規則,避免帶來不必要的麻煩。


參考鏈接:

<1>http://bbs.51cto.com/thread-1095321-1-1.html

<2>http://blog.csdn.net/kobejayandy/article/details/20867351

<3>http://www.cnblogs.com/freespider/p/4684586.html

<4>http://blog.csdn.net/tongzidane/article/details/42291857(nginx安裝、配置等)

<5>http://www.51itstudy.com/50449.html






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