linux之nginx的安裝


(一)這次是自己折騰服務器的環境,所以自己算是都裝過一遍,在裝的過程中也是在網上搜索,其實最后在公司運維的指導下知道自己安裝出錯在哪里的。不說了,直接說安裝和問題

(二):首先從 http://nginx.org/en/download.html下載自己需要的nginx(http://nginx.org/download/nginx-1.8.0.tar.gz),我安裝的事1.8.0的。

    1:安裝前准備工作,安裝make編譯器(這里有說明--->http://www.cnblogs.com/suihui/archive/2013/04/13/3018557.html)

    2:首先進入/usr/local/ 命令 cd /usr/local;然后使用命令:sudo mkdir nginx創建nginx的文件夾;

    3:進入下載好的nginx.tar.gz 的安裝包的目錄:使用 tar -axvf  nginx-1.8.0.tar.gz  進入目錄 cd nginx-1.8.0 ;准備安裝nginx;

    4:安裝命令:

                             ./configure  —prefix=/usr/local/nginx  (說明:后面的"—prefix=/usr/local/nginx"指定安裝的目錄。)

          make

                            make install 

    5:只要其中三步驟,nginx基本就配置成功,接下來就是配置相應得到端口號轉發等操作。

    配置:

      

server {
    listen       80;###監聽的端口
    server_name  123.222.222.222;###這里是代表監聽的ip(這個名字是否有特殊的意義我暫時有點不確定,在我的理解上應該只是個名字)

    #charset koi8-r;

    access_log  /data/logs/nginx/push_server.access.log  main;
    error_log /data/logs/nginx/push_server.error.log;

    location / {
    proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080;
        #proxy_pass http://127.0.0.1:8080;
    }

}

 當然也可以配置多個監聽,直接復制一個完整的server,當然監聽的端口不同;下面配置的這個是個圖片路徑查找的;如果外網訪問"http://123.222.222.222/test/imgs/view/123.png"的圖片,會通過nginx轉發,最后找的路徑是服務器上"/home/data/test/imgs/view/123.png"這個路徑

 server {
        listen       8090;
        server_name  123.222.222.222;
        location ^~ /test/imgs/view {
                root /home/data;
                expires 10d;
        }
        location ^~ /test/imgs/person/ {
                root /home/data;
                expires 10d;
        }
        location ~ $ {
                #root /usr/local/tomcat/webapps/chargepile;
                server_name_in_redirect off;
                proxy_set_header Host $host:$server_port;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:8088;(說明:這是轉發到內網為8088的端口服務的tomcat下)
                client_max_body_size  10m;(說明:指定上傳文件大小)
        }
 

tomcat的配置

<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- Note:  A "Server" is not itself a "Container", so you may not
     define subcomponents such as "Valves" at this level.
     Documentation at /docs/config/server.html
 -->
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">

    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->


    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
         This connector uses the NIO implementation that requires the JSSE
         style configuration. When using the APR/native implementation, the
         OpenSSL style configuration is required as described in the APR/native
         documentation -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->

    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>
  </Engine>
  </Service>
</Server>

  

這里的tomcat的端口還是需要好好理解下;

然后我們進行訪問,有時候就會出現一下圖片內容

 

這樣可以就在nginx.conf里面的第一行加入:"user root";

這是第一種方法,第二種就是把訪問的目錄給相應的權限,但是這個我沒試過,現在用的都是直接在nginx里面配置上面那種方式。

(三):總結

      其實看看上面覺得nginx還是比較好配置的,但是如果能夠理解原理更好,這里面有一點是我在寫的時候想到的,就是我監聽了端口,然后進行轉發到tomcat的端口,那么tomcat就會執行程序?為什么會執行程序了?如果我這個tomcat下面會有多個項目,那么怎么指定執行特定的程序了?這個還是得思考,第一步已經做到了那就是使用,會使用后就盡量去弄明白原理哦,雖然我不是專業做運維的,但是我是做web,多了解點也是好的。努力。

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM